GROUP BY Problem

JtGD28

Grünschnabel
Hallo,

ich habe eine Abfrage über 3 Tabellen. Nun möchte ich, dass die Projekte nur 1 mal angezeigt wird (also GROUP BY eigentlich auf ProjektID) und die Umsatz-Felder summiert werden. Alle anderen Felder sollen aber auch mit ausgegeben werden.

Wie ist dies möglich

Code:
SELECT Klienten.KlientenNr, Klienten.KlientenName, Klienten.KlientenVorname, Klienten.KlientenKontaktArt, Klienten.KlientenKontaktAnfrage, Projekte.ProjektArt, Projekte.ProjektSparte, Projekte.ProjektFP, Projekte.ProjektBGI, Projekte.ProjektBGII, Projekte.ProjektBGIII, Projekte.ProjektSGII, Projekte.ProjektSGIII, Projekte.ProjektSGIV, Projekte.UmsatzSparte AS Projekte_UmsatzSparte, Projekte.UmsatzProjektArt, Projekte.UmsatzAngesagt, Umsätze.UmsatzEH, Projekte.ProjektStatus 
FROM (Klienten INNER JOIN Projekte ON Klienten.KlientenID=Projekte.KlientenID) LEFT JOIN Umsätze ON Projekte.ProjektID=Umsätze.ProjektID;

Vielen Dank für Eure Hilfe.

Gruß
Jörg
 
Hallo,

vielleicht versuche ich mein Problem etwas vereinfacht darzustellen.

Ich habe folgende Tabellen:


Klienten - KlientenID, KlientenName, KlientenVorname

Projekte - ProjektID, KlientenID, ProjektName, ProjektDatum

Umsatz - UmsatzID, ProjektID, Einheiten


Jetzt möchte ich eine Liste abrufen in der die Projekte einmal aufgelistet und die Umsätze der Projekte summiert angezeigt werden. Für jedes Projekt kann es mehrere Umsätze geben. In der Liste sollen aber alle oben genannten Felder angezeigt werden.

Wenn ich GROUP BY verwende, will er das ich alle Daten gruppiere. Aber wie soll ich Namen und Datumsangaben gruppieren!?

Ich hoffe es ist jetzt verständlicher womit ich nicht weiter komme!

Für Eure Hilfe wäre ich Euch sehr dankbar.

Gruß
Jörg
 
Hi,

die Frage ist ja, welches Datum z.B. Du in der Ausgabe dann sehen möchtest? Das letzte? Dann wähle es in der Gruppe mit MAX() aus.

Es ergibt vom Konzept her nämlich keinen Sinn, in einer Gruppierung Felder auszuwählen, die nicht aggregiert werden und nach denen auch nicht gruppiert wird.

LG
 
Hallo,

ich habe es jetzt doch irgendwie gelöst bekommen.

Habe 1 Abfrage für alle Klienten mit Ihren jeweiligen Projekten und eine Abfrage auf die Tabelle Umsatz gemacht. Bei der Abfrage der Umsatz Tabelle habe ich lediglich die ProjektID und die Spalte UmsatzEH verwendet. die ProjektID wurde gruppiert und die UmsatzEh summiert.

In einer dritten Abfrage habe ich diese nun die 1. und die 2. Abfrage per Left Join miteinander verbunden!

Wen der SQL interessiert, bitte einfach melden.

Vielen Dank für Eure bisherige Unterstützung.

Gruß
Jörg
 
Zurück