Announcement

Collapse
No announcement yet.

View mit LEFT OUTER JoinSQK

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

  • View mit LEFT OUTER JoinSQK

    Hallo,

    Ich habe einen Viw erstellt der wie folgt aussieht:

    SELECT dbo.[Partner Gesamt].No_, dbo.[Partner Gesamt].H1, dbo.[Partner Gesamt].H2, dbo.[Partner Gesamt].H3, [Contact License_1].Code AS L1,
    dbo.[Contact License].Code AS L2
    FROM dbo.[Partner Gesamt] LEFT OUTER JOIN
    dbo.[Contact License] ON dbo.[Partner Gesamt].No_ = dbo.[Contact License].[Contact No_] LEFT OUTER JOIN
    dbo.[Contact License] AS [Contact License_1] ON dbo.[Partner Gesamt].No_ = [Contact License_1].[Contact No_]
    WHERE (dbo.[Contact License].[Row Number] = 2) AND ([Contact License_1].[Row Number] = 1)

    Nach meiner erkenntnis soll dieser View alle Datensätze der Tabelle Partner Gesamt zurüchgeben. Dies ist leider nicht so. Es werden nur die Datensätze zurückgegeben, die in der 2. Tabelle (view) einen Wert enthalten.

    Wie kann man das ändern?

    Danke für eure Unterstützung im Voraus.

    gruß Jörg

  • #2
    Hi!

    Das liegt an deiner WHERE-Klausel. Da schränkst du nur auf Werte aus der [Contact License] ein.

    Gruß,
    Martin

    Comment


    • #3
      Danke für den Tipp!!

      und wie kann ich das am besten umgehen?

      gruß Jörg

      Comment


      • #4
        Die Bedingung muss in die ON-Klausel vom JOIN. Die wird dann schon beim joinen ausgewertet, nicht erst zum Schluß als letzter Schritt beim Feststellen der Ergebnismenge.

        Gruß,
        Martin

        Comment


        • #5
          Code:
          SELECT dbo.[Partner Gesamt].No_, 
                       dbo.[Partner Gesamt].H1, 
                       dbo.[Partner Gesamt].H2, 
                       dbo.[Partner Gesamt].H3, 
                       [Contact License_1].Code AS L1,
                       dbo.[Contact License].Code AS L2
          FROM dbo.[Partner Gesamt] 
          
          LEFT OUTER JOIN dbo.[Contact License] 
          ON   dbo.[Partner Gesamt].No_ = dbo.[Contact License].[Contact No_] 
          AND dbo.[Contact License].[Row Number] = 2 
          
          LEFT OUTER JOIN dbo.[Contact License] AS [Contact License_1] 
          ON dbo.[Partner Gesamt].No_ = [Contact License_1].[Contact No_]
          AND [Contact License_1].[Row Number] = 1
          So sollte es klappen.

          Gruß,
          Martin

          Comment

          Working...
          X