Autor Beitrag
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Mo 04.07.16 11:24 
Hallo,

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

Ich habe drei Tabellen, welche vereinfacht so aussehen:

Rechnungen:
  • RechnungsNo
  • ErstellungsZeit
  • Gesamtbetrag


GebuchteArtikelLink:
  • RechnungsNo
  • ArtikelBuchnungsNo


GebuchteArtikel:
  • ArtikelBuchnungsNo
  • AnzahlVerbucht


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:
  • RechnungsTag (Extraiert aus ErstellungsZeit)
  • GesamtanzahlEnthaltenderArtikel (SUM über alle AnzahlVerbucht Felder aller verlinkten Artikelbuchungen)
  • GesamtbetragDesTage (SUM von Gesamtbetrag)



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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 04.07.16 11:47 
Die ersten beiden Tabellen joinen und die gebuchten Artikel über ein Sub-Select mit Sum auf AnzahlVerbucht holen.

Für diesen Beitrag haben gedankt: doublecross
doublecross Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: 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.