[MSSQL] Join 3 Tabelle

Hawei78

Grünschnabel
Hallo,

habe folgendes Problem:

ich habe 3 Tabellen

1. Tabelle: Rechnungen
RechnungID
ZahlungskonditionID
Betrag
...

2. Tabelle: Zahlungen
RechnungID
Zahlung (wenn vorhanden)
....

3. Tabelle: Zahlungskonditionen
ZahlungskonditionID
Nettotage
Skontotage
....

um die Fälligkeit, die offenen Zahlungen und Mahnstufen zu berechnen, brauche ich bei den Zahlungen die Konditionen zugeordnet, Tabelle 1 und 2 habe ich denk ich mit einem Left Join hinbekommen. Doch wie ich die 3. Tabelle noch dazujoine, bekomm ich einfach nicht hin.
 
Genau so wie 1 zu 2.
Zeig doch mal dein Stand der Dinge. Dann könne wir darauf aufbauen
 
Was Yaslaw sagt:
Code:
SELECT
  Rechnungen.Betrag
-- ggf weitere Spalten
FROM Rechnungen
LEFT OUTER JOIN
   Zahlungen ON
   (Rechnungen.RechnungID=Zahlungen.RechnungID)
LEFT OUTER JOIN
   Zahlungskonditionen ON
   (Rechnungen.ZahlungskonditionID=Zahlungskonditionen.ZahlungskonditionID)
WHERE
-- weiterer Code
 
Genau so wie 1 zu 2.
Zeig doch mal dein Stand der Dinge. Dann könne wir darauf aufbauen

SQL:
SELECT        dbo.RECHNUNG.RECHNUNG, dbo.RECHNUNG.DATUM, dbo.RECHNUNG.STATUS, dbo.RECHNUNG.STDTXT, dbo.RECHNUNG.BRUTTO, dbo.ANP_ZAHLUNG.ZAHLDATUM, dbo.ANP_ZAHLUNG.SKONTOBETRAG,
                         dbo.ANP_ZAHLUNG.KOMMENTAR, dbo.RECHNUNG.ANP_LETZTEMAHNUNG, dbo.RECHNUNG.ANP_MAHNSTUFE, dbo.ANP_ZAHLUNG.BETRAGEXKLSKONTO, dbo.ANP_ZAHLUNG.BELEGNUMMER
FROM            dbo.RECHNUNG LEFT OUTER JOIN
                         dbo.ANP_ZAHLUNG ON dbo.ANP_ZAHLUNG.BELEGNUMMER = dbo.RECHNUNG.RECHNUNG
WHERE        (dbo.RECHNUNG.STATUS = 5)
 
Was Yaslaw sagt:
Code:
SELECT
  Rechnungen.Betrag
-- ggf weitere Spalten
FROM Rechnungen
LEFT OUTER JOIN
   Zahlungen ON
   (Rechnungen.RechnungID=Zahlungen.RechnungID)
LEFT OUTER JOIN
   Zahlungskonditionen ON
   (Rechnungen.ZahlungskonditionID=Zahlungskonditionen.ZahlungskonditionID)
WHERE
-- weiterer Code

nun hab 9 000 statt 25 000 Datensätze liegt wahrscheinlich an der Dateneingabe in der Datenbank
 
Vielleicht. Vielleicht ist es aber auch ein Designproblem. Von den Begrifflichkeiten hätte ich ehr erwartet, dass die Tabelle "Zahlungen" eine "ZahlungsbedingungsID" hat, über die die Verknüpfung zwischen Zahlungen und Zahlungsbedingungen erstellt werden kann.
Frag den DB-Ersteller, was es sich dabei gedacht hat :=)
 
Vielleicht. Vielleicht ist es aber auch ein Designproblem. Von den Begrifflichkeiten hätte ich ehr erwartet, dass die Tabelle "Zahlungen" eine "ZahlungsbedingungsID" hat, über die die Verknüpfung zwischen Zahlungen und Zahlungsbedingungen erstellt werden kann.
Frag den DB-Ersteller, was es sich dabei gedacht hat :=)

die Tabelle Zahlungen wurde jetzt erst erstellt und wird im Nachhinein als Anpassung in die Datenbank gespielt
 
hab mir jetzt Hilfe bei der Entwicklung der DB geholt, dürft selbst für die nicht so einfach gewesen sein
 

Neue Beiträge

Zurück