Mailinglisten-Archive |
> Ich habe eine Haupttabelle mit den Kundendaten, eine 2. Tabelle für die > Eingänge, die 3. für Ausgänge und die 4. für Umsätze. Per SQL Abfrage > möchte > ich nun eine Art Übersicht ermitteln: Wieviele Ein- und Ausgänge bzw. > welcher Umsatz hat welcher Kunde im Zeitraum von/bis gemacht. > > Beispiel: > > 1. Kunden > kdnr name > 1 Kunde 1 > > 2. Eingang > kdnr datum anz > 1 01.10 16 > 1 10.10 30 > 1 17.10 24 > > 3. ausgang > kdnr datum anz > 1 05.10 6 > 1 09.10 7 > 1 12.10 32 > 1 18.10 9 > > 4. umsatz > kdnr datum betrag > 1 15.10 200,- > 1 19.10 150,- > > Abfrage: > select sum(eingang.anz), sum(ausgang.anz), sum(umsatz.betrag) from kunden > left join eingang on eingang.kdnr = kunden.id > left join ausgang on ausgang.kdnr = kunden.id > left join umsatz on umsatz.kdnr = kunden.id > group by kunden.id > > Ergebnis: > kdnr eingang ausgang umsatz > 1 70 54 350,- > > Leider erhalte ich aber ein völlig anders Ergebnis, was Aufgrund der Joins > auch eigentlich klar ist, aber wie muss ich die Abfrage gestalten das es > dennoch funzt? select eing.anz, ausg.anz, ums.betrag from kunden left join (SELECT kdnr, sum(anz) as anz FROM eingang GROUP BY kdnr) AS eing on eing.kdnr = kunden.id left join (SELECT kdnr, sum(anz) as anz FROM ausgang GROUP BY kdnr) AS ausg on ausg.kdnr = kunden.id left join (SELECT kdnr, sum(betrag) as betrag FROM umsatz GROUP BY kdnr) AS ums on ums.kdnr = kunden.id Aber - sorry - das kann MySQL meines Wissens nach (noch) nicht. ciao! Kai -- GMX - Die Kommunikationsplattform im Internet. http://www.gmx.net --- !!NEU!! Fragen und Antworten zu MySQL und dieser Liste unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive