Announcement

Collapse
No announcement yet.

Verknüpfung von 4 Tabellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verknüpfung von 4 Tabellen

    Hallo,

    ich habe eine Frage zur vollständigen Verknüpfung von 4 Tabellen.
    Tabelle 1 ist die Übersicht aller Kunden mit Kundennummer von 1 – 1000.
    Tabelle 2 enthält Kosten der Kunden 1 – 500. (Kunde nur enthalten wenn Kosten angefallen sind)
    Tabelle 3 enthält Kosten der Kunden 501 – 1000. (Kunde nur enthalten wenn Kosten angefallen sind)
    Tabelle 4 enthält andere Kosten der Kunden 1 – 1000. (Kunde nur enthalten wenn Kosten angefallen sind)
    Ich will eine Sicht erstellen die alle 4 Tabellen mit einander verknüpft.
    Jeder Kunde kann Kosten aus Tabelle 2 oder 3 und aus Tabelle 4 haben. Evtl aber auch nur aus der 4 oder nur aus der 2 oder 3.
    Meine Verknüpfung mit Tabelle 2 und 3 funktioniert leider nur wenn der Kunde Kosten in Tabelle 4 hat. Wenn der Kunde darin nicht aufgeführt ist erscheinen auch die Kosten aus Tabelle 2 und 3 nicht.

    Meine Abfrage sieht so aus:
    [highlight=sql]
    Select ….

    FROM dbo.Tabelle1
    FULL OUTER JOIN
    dbo.Tabelle2 ON dbo.Tabelle1.Kundennummer = dbo.Tabelle2.Kosten1
    FULL OUTER JOIN
    dbo.Tabelle3 ON dbo.Tabelle1.Kundennummer = dbo.Tabelle3.Kosten2
    FULL OUTER JOIN
    dbo.Tabelle4 ON dbo.Tabelle1.Kundennummer = dbo.Tabelle4.Kosten3 [/highlight]

  • #2
    Hallo,

    verwende statt einem FULL JOIN einen LEFT JOIN:
    [highlight=sql]
    SELECT ….
    ISNULL(tabelle4.Kosten,0)+
    ISNULL(tabelle3.Kosten,0)+
    ISNULL(tabelle2.Kosten,0) AS Gesamtkosten
    FROM dbo.Tabelle1
    LEFT OUTER JOIN dbo.Tabelle2 ON dbo.Tabelle1.Kundennummer = dbo.Tabelle2.Kundennummer
    LEFT OUTER JOIN dbo.Tabelle3 ON dbo.Tabelle1.Kundennummer = dbo.Tabelle3.Kundennummer
    LEFT OUTER JOIN dbo.Tabelle4 ON dbo.Tabelle1.Kundennummer = dbo.Tabelle4.Kundennummer
    [/highlight]

    P.S.
    Das dahinterliegende Datenmodell ist natürlich diskussionswürdig .. aber so sollte es gehen.

    Viel Erfolg
    Tino
    Ich habs gleich!
    ... sagte der Programmierer.

    Comment

    Working...
    X