Hallo zusammen, ich bin SQL-Neuling und komme gerade bei einem Problem nicht weiter.
Ich möchte Daten aus zwei Tabellen abfragen.
In der ersten Tabelle gibt es für jede ID (Rechnungsnummer) genau eine Zeile:
Tabelle Rechnung
Rechnungsnummer | Bruttorechnungsbetrag
100000 | 119
100001 | 200
Die ID 'Rechnungsnummer' gibt es auch in der zweiten Tabelle.
Für eine Rechnungsnummer gibt es in dieser Tabelle aber mehrere Zeilen.
Die Zeile mit dem Wert '2' in der Spalte 'Buchungstyp' gibt es aber nicht für jede Rechnungsnummer (nicht bei jeder Rechnung wird die Mwst berechnet):
Tabelle Journal
Rechnungsnummer | Buchungstyp | Buchungstext | Betrag
1000000 | 1 | Position A | 60
1000000 | 1 | Position B | 40
1000000 | 2 | Mwst | 19
1000001 | 1 | Position C | 90
1000001 | 1 | Position D | 110
Meine benötigte Ergebnistabelle soll für jede Rechnungsnummer genau eine Zeile haben.
Die Spalten sollen die 'Rechnungsnummer' und den 'Bruttorechnungsbetrag' aus der Tabelle 'Rechnung' enthalten und den 'Betrag' der Mwst (= 'Buchungstyp = 2') aus der Tabelle 'Journal'.
Aus dem Bruttorechnungsbetrag und dem Betrag der Mwst soll der Nettorechnungsbetrag berechnet werden.
Wenn es für eine Rechnungsnummer keine Zeile für die Mwst gibt, soll in der Ergebnistabelle in der Spalte Mwst eine '0' stehen:
Ergebnistabelle
Rechnungsnummer | Nettorechnungsbetrag | Mwst | Bruttorechnungsbetrag
100000 | 100 | 19 | 119
100001 | 200 | 0 | 200
Mit einem "normalem" JOIN der beiden Tabellen über die Rechnungsnummer komme ich nicht weiter, da ich dann in der Ergebnistabelle mehrere Zeilen pro Rechnungsnummer bekomme.
Mit einem
FROM Rechnung R JOIN Journal J ON R.Rechnungsnummer=J.Rechnungsnummer AND J.Buchungstyp=2
klappt es aber auch nicht, da dann die Rechnungen ohne Mwst rausfallen.
Ich habe auch schon versucht über 'CASE WHEN THEN ELSE END' weiterzukommen, das war bisher aber leider auch nicht von Erfolg gekrönt.
Über Hinweise zur Lösung meines Problems würde ich mich sehr freuen.
Vielen Dank!
Flo
Ich möchte Daten aus zwei Tabellen abfragen.
In der ersten Tabelle gibt es für jede ID (Rechnungsnummer) genau eine Zeile:
Tabelle Rechnung
Rechnungsnummer | Bruttorechnungsbetrag
100000 | 119
100001 | 200
Die ID 'Rechnungsnummer' gibt es auch in der zweiten Tabelle.
Für eine Rechnungsnummer gibt es in dieser Tabelle aber mehrere Zeilen.
Die Zeile mit dem Wert '2' in der Spalte 'Buchungstyp' gibt es aber nicht für jede Rechnungsnummer (nicht bei jeder Rechnung wird die Mwst berechnet):
Tabelle Journal
Rechnungsnummer | Buchungstyp | Buchungstext | Betrag
1000000 | 1 | Position A | 60
1000000 | 1 | Position B | 40
1000000 | 2 | Mwst | 19
1000001 | 1 | Position C | 90
1000001 | 1 | Position D | 110
Meine benötigte Ergebnistabelle soll für jede Rechnungsnummer genau eine Zeile haben.
Die Spalten sollen die 'Rechnungsnummer' und den 'Bruttorechnungsbetrag' aus der Tabelle 'Rechnung' enthalten und den 'Betrag' der Mwst (= 'Buchungstyp = 2') aus der Tabelle 'Journal'.
Aus dem Bruttorechnungsbetrag und dem Betrag der Mwst soll der Nettorechnungsbetrag berechnet werden.
Wenn es für eine Rechnungsnummer keine Zeile für die Mwst gibt, soll in der Ergebnistabelle in der Spalte Mwst eine '0' stehen:
Ergebnistabelle
Rechnungsnummer | Nettorechnungsbetrag | Mwst | Bruttorechnungsbetrag
100000 | 100 | 19 | 119
100001 | 200 | 0 | 200
Mit einem "normalem" JOIN der beiden Tabellen über die Rechnungsnummer komme ich nicht weiter, da ich dann in der Ergebnistabelle mehrere Zeilen pro Rechnungsnummer bekomme.
Mit einem
FROM Rechnung R JOIN Journal J ON R.Rechnungsnummer=J.Rechnungsnummer AND J.Buchungstyp=2
klappt es aber auch nicht, da dann die Rechnungen ohne Mwst rausfallen.
Ich habe auch schon versucht über 'CASE WHEN THEN ELSE END' weiterzukommen, das war bisher aber leider auch nicht von Erfolg gekrönt.
Über Hinweise zur Lösung meines Problems würde ich mich sehr freuen.
Vielen Dank!
Flo