Entwickler-Ecke

Alle Sprachen - Alle Plattformen - SQL Join über 3 Tabellen mit Berechnungen


doublecross - Mo 04.07.16 11:24
Titel: SQL Join über 3 Tabellen mit Berechnungen
Hallo,

ich bräuchte ein wenig Unterstützung bei einem Join.

Ich habe drei Tabellen, welche vereinfacht so aussehen:

Rechnungen:


GebuchteArtikelLink:


GebuchteArtikel:


Natürlich enthalten die Tabellen noch einige Felder mehr, die dürften hier aber nicht relevant sein.
Ich möchte jetzt eine Abfrage gestalten, die mir die Umsätze und Anzahl der Verkauften Artikel nach Tagen gruppiert liefert. Also in etwa folgendes Ergebnis:

Ergebnis:



Mein Problem besteht darin, dass zu jeder Rechnung n Links in der "GebuchteArtikelLink" vorhanden sein können. Wenn ich das ganze dann Joine bekomme ich eine Vervielfachung meines "Gesamtbetrag" für die jeweilige Rechnung, welchen ich sumit nicht mehr Summieren kann. Leider kann ich auch nicht einfach die Artikelpreist (welche tatsächlich in der GebuchteArtikel Tabelle auftauchen) Addieren, da es Rabatte gibt, welche den "Gesamtbetrag" der Rechnung beinflussen, somit muss ich hier den Wert aus "Rechnungen" verwenden.

Ich bin leider nicht firm Genug in SQL um einen passenden Join zu formullieren, der mir zwar dass Addieren aller Verlinkten "AnzahlVerbucht" Werte erlaubt, aber zu keiner Vervielfachung meiner "Gesamtbetrag" Werte führt, dammit ich diese dann wieder auf Tagesebene Summieren kann (ebenso wie die Artikel Zahl).

Ich hoffe ihr könnt mir dabei helfen.


jasocul - Mo 04.07.16 11:47

Die ersten beiden Tabellen joinen und die gebuchten Artikel über ein Sub-Select mit Sum auf AnzahlVerbucht holen.


doublecross - Mo 04.07.16 13:26

Hallo,

danke für den Schubs in die richtige Richtung, so klappt es, erst GebuchteArtikelLink mit GebuchteArtikel Joinen und auf jeweils eine RechnungsNo Gruppieren und dann das Ergebnis mit Rechnungen verbinden.