laserbrain: Query Verständnis Problem

Hi Leute,

ich habe ein Problem mit einem DB2 SQL Query. Ich habe eine Abfrage die Funktionert ohne Probleme, aber dort ist eine Spalte in der kann ein Wert stehen, muss aber nicht. Dier Wert A.WertA hat eine Zuordnung in einer anderen Tabelle B. Sprich A.WertA = B.WertX ist die Bedingung, dann soll B.WertY ausgeben werden. Aber mit einer Where Bedingung werden nur Zeilen ausgegeben, die wirklich ein Ergebnis liefern. Ich will aber auch wenn dort keine Treffer ist, die ganze Zeile meiner Abfrage ausgeben. Wie kann ich das machen?

  1. Hello,

    Wie kann ich das machen?

    ich vermute mit einer Kombination von Dingen:

    1. Du schnappst dir einen LEFT JOIN um einen optionalen Join zwischen A und B durchzuführen. Somit erhälst du tatsächlich auch Zeilen, bei denen es kein Ergebnis gibt.
      Wenn das schon dein ganzes Ziel ist (WertY oder eben nicht WertY) dann darfst du hier aufhören.

    2. Falls du entweder WertY oder einen Alternativwert ausgeben möchtest, dann kombinierst du (1) noch mit COALESCE und schnappst dir somit den ersten gefüllten Wert aus einer Parameterliste, z.B. COALESCE(B.WertY, 'Mein Standardwert')

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Unser Problem ist, dass wir eine Demokratie entwickelt haben, was nicht immer der richtige Weg ist  --  Bernie Ecclestone zu den lästigen Diskussionen um Regeländerungen in der Formel 1
    1. Der Tipp des LEFT JOIN war super.
      Genau ein solches Konsrtukt habe ich gesucht.

      Danke schön.