Mik3e
Erfahrenes Mitglied
Hi zusammen,
Ich hänge (mal wieder) bei einem etwas komplexeren SQL Query.
Um die Sache besser zu erläutern habe ich ein ERD gebaut anhand des typischen Beispiels "Bestellung / Buchung".
Aufbau und Datenquelle:
Das ERD zeigt den Aufbau einer Buchung. Diese besteht aus der eigentlichen Buchung (tbl_buchung), keiner, einer oder mehrerer Buchungsgebühren (tbl_buchung_buchungsgebuehr), keinem, einem oder mehreren Produkten (tbl_buchung_produkte) sowie keinen, einer oder meherer Versandspesen (tbl_buchung_versandspesen). Die genauen Beziehungen seht ihr schön übersichtlich am ERD im Anhang.
Wichtiger Tipp am Rande: Primärschlüssel beginnen mit "pk_", Fremdschlüssel mit "fk_".
Problemstellung / gesuchte Lösung:
Es soll nun ein Report Query generiert werden, der mir folgende Ausgabe liefert (Grundlage für die Zahlen sind die Beispieldaten im ERD):
In Worten:
Suche mir die aggregierten Summen von Buchungsgebühren, Produkten und Versandspesen, gruppiert nach buchungs_id.Sollten keine Datensätze gefunden werden, liefere NULL.
Mein (falscher) Lösungsansatz:
Ich habe bereits einen Query, der mir fleissig Daten liefert. Allerdings hat er beim aggregieren der Daten anscheinend echte Problem (die Summen stimmen nie):
Bemerkung am Rande:
Sollten hier kleine Syntax-oder Tippfehler enthalten sein, seht es mir bitte nach. Habe das Beispiel nur zur Veranschaulichung meines eigentlichen Problems aus dem Handgelenk geschüttelt Mir geht es wirklich nur um die Logik des Queries...
Ich hoffe der Aufwand dieses Beispiel zu erstellen hat sich gelohnt (wovon ich ausgehe .
Danke für jeden konstruktiven Vorschlag vorweg,
LG & Ciao,
Mike
Ich hänge (mal wieder) bei einem etwas komplexeren SQL Query.
Um die Sache besser zu erläutern habe ich ein ERD gebaut anhand des typischen Beispiels "Bestellung / Buchung".
Aufbau und Datenquelle:
Das ERD zeigt den Aufbau einer Buchung. Diese besteht aus der eigentlichen Buchung (tbl_buchung), keiner, einer oder mehrerer Buchungsgebühren (tbl_buchung_buchungsgebuehr), keinem, einem oder mehreren Produkten (tbl_buchung_produkte) sowie keinen, einer oder meherer Versandspesen (tbl_buchung_versandspesen). Die genauen Beziehungen seht ihr schön übersichtlich am ERD im Anhang.
Wichtiger Tipp am Rande: Primärschlüssel beginnen mit "pk_", Fremdschlüssel mit "fk_".
Problemstellung / gesuchte Lösung:
Es soll nun ein Report Query generiert werden, der mir folgende Ausgabe liefert (Grundlage für die Zahlen sind die Beispieldaten im ERD):
Code:
pk_buchung_id | buchung_datum | summe_buchungsgebuehr | summe_produkte_betrag | summe_versandspesen
1 | 18.09.2005 | 16.00 | 379.00 | 4.50
2 | 19.09.2005 | 7.00 | 38.00 | NULL
Suche mir die aggregierten Summen von Buchungsgebühren, Produkten und Versandspesen, gruppiert nach buchungs_id.Sollten keine Datensätze gefunden werden, liefere NULL.
Mein (falscher) Lösungsansatz:
Ich habe bereits einen Query, der mir fleissig Daten liefert. Allerdings hat er beim aggregieren der Daten anscheinend echte Problem (die Summen stimmen nie):
Code:
SELECT
t1.pk_buchung_id,
t1.buchung_datum,
SUM(t2.buchung_buchungsgebuehr_betrag) AS summe_buchungsgebuehr,
SUM(t3.buchung_produkte_betrag) AS summe_produkte_betrag,
SUM(t4.buchung_versandspesen_betrag) AS summe_versandspesen
FROM
tbl_buchung AS t1
LEFT JOIN tbl_buchung_buchungsgebuehr AS t2 ON t1.pk_buchung_id=t2.fk_buchung_id
LEFT JOIN tbl_buchung_produkte AS t3 ON t1.pk_buchung_id=t3.fk_buchung_id
LEFT JOIN tbl_buchung_versandspesen AS t4 ON t1.pk_buchung_id=t4.fk_buchung_id
WHERE
1>0
GROUP BY t1.pk_buchung_id
Sollten hier kleine Syntax-oder Tippfehler enthalten sein, seht es mir bitte nach. Habe das Beispiel nur zur Veranschaulichung meines eigentlichen Problems aus dem Handgelenk geschüttelt Mir geht es wirklich nur um die Logik des Queries...
Ich hoffe der Aufwand dieses Beispiel zu erstellen hat sich gelohnt (wovon ich ausgehe .
Danke für jeden konstruktiven Vorschlag vorweg,
LG & Ciao,
Mike