online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon Dooli vom 06.09.2019, 08:56 Options

2x Count in SQL

Hallo ihr alle,

folgendes Problem:

Ich arbeite mit MS Access, kenne mich aber auch ganz gut in SQL aus. Meine jetzige Abfrage gruppiert eine Tabelle nach 3 Attributen und gibt mit COUNT die Anzahl der Datensätze aus, soweit kein Problem. Jetzt möchte ich in derselben Abfrage die Anzahl derer Datensätze haben, die noch eine zusätzliche Bedingung erfüllen (etwa < 20).

Jetzt könnte ich natürlich eine neue Abfrage bauen die genauso aussieht wie die Alte nur mit der zusätzlichen Bedingung und die beiden Joinen. Dann hätte ich aber auf einen Schlag 20-30 Abfragen mehr

Es geht bestimmt auch in derselben Abfrage oder?


Antwort schreiben

Antwort 1 von ChatAlligator vom 06.09.2019, 10:25 Options

Natürlich geht das - und wenn wir die Bedingungen kennen würden, könnten wir vielleicht auch eine Lösung bieten.

Nenn doch mal deine bisherigen 2 SQL-Abfragen, was der Rechner ausspuckt und was er ausspucken sollte.
Gegebenenfalls wäre ein Beispiel nicht schlecht.

Gruß CA

Antwort 2 von MixMax vom 06.09.2019, 10:39 Options

evtl mit " ... HAVING (bedingungen)"

ansonsten schreibe einfach anstelle die Spalte zu selektieren einen vergleich mit der Spalte der dann Wahr oder Falsch ergibt und summiere das:

SELECT Count(ZE.Beginn) AS anzahlstarts, -1*sum(ZE.Ende > #19:00#)  AS Endzeitennach19uhr FROM Zeiten;

Antwort 3 von Dooli vom 06.09.2019, 10:57 Options

Abfrage 1

SELECT VR, B, KUNDE_ID, Count(AUFTRAG_NUMMER) AS ANZAHL
FROM AUFTRÄGE
GROUP BY VR, B, KUNDE_ID;

Abfrage 2

SELECT VR, B, KUNDE_ID, Count(AUFTRAG_NUMMER) AS ANZAHL
FROM AUFTRÄGE
WHERE FORM="Aufwand"
GROUP BY VR, B, KUNDE_ID;

Antwort 4 von MixMax vom 06.09.2019, 12:38 Options

SELECT VR, B, KUNDE_ID, Count(AUFTRAG_NUMMER) AS ANZAHL, -1*sum(FORM="Aufwand")
FROM AUFTRÄGE
GROUP BY VR, B, KUNDE_ID;


Du hast eine Spalte mit dem namen FORM?

Antwort 5 von Dooli vom 08.09.2019, 17:43 Options

Scheint zu funktionieren, vielen Dank!

Antwort 6 von Dooli vom 10.09.2019, 08:57 Options

Eine Frage hätte ich noch:
Wie siehts aus wenn ich nicht die Anzahl der Datensätze, sondern die Summe eines Feldes bestimmen will? also:

Abfrage 1

SELECT VR, B, KUNDE_ID, Sum(Preis) AS Preis
FROM AUFTRÄGE
GROUP BY VR, B, KUNDE_ID;

Abfrage 2

SELECT VR, B, KUNDE_ID, Sum(Preis) AS Preis
FROM AUFTRÄGE
WHERE FORM="Aufwand"
GROUP BY VR, B, KUNDE_ID;

Ähnliche Themen

kommentare in sql datenbank
soad  04.01.2007 - 120 Hits -

sql laufwerk
micky01  21.02.2007 - 110 Hits -

Einfaches Problem bei php.
Hoshyman  30.03.2007 - 102 Hits - 3 Antworten

Word SQL Resultat anzeigen
Schnufi  12.04.2007 - 85 Hits -

database error
issi  03.05.2007 - 98 Hits -

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026