Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

2x Count in SQL





Frage

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 1 von ChatAlligator

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

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

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

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

Scheint zu funktionieren, vielen Dank!

Antwort 6 von Dooli

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;

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: