2017-05-18 5 views
0

Ich habe den folgenden Ansatz:Fill temporäre Tabelle nach Prüfergebnissen in SQL Server

Die erste Prüfung ist, sind die Daten nicht aus dem US-:

WITH Step1 AS (
     SELECT 
      t1.IdentNo, 
      t1.Name 
     FROM 
      dbo.Table1 t1 
     WHERE 
      t1.CCode <> 'US' 
    ), 

Step2 AS (
     SELECT DISTINCT 
      t2.IdentNo, 
      t2.Name 
     FROM 
      dbo.Table2 t2 
     INNER JOIN 
      Step1 s1 
     ON 
      t2.IdentNo = s1.IdentNo 
     WHERE 
      (t2.artNo='AB504' AND t2.VALUE='1') 
    ) 

-- TEST RESULT 
    SELECT 
     * 
    FROM 
     Step2 

So kann die Lösung sein müssen, in der Erster Schritt Ich möchte alle IdentNo -s in einer temporären Tabelle hinzufügen. Dann möchte ich im zweiten Schritt die Temp-Tabelle mit dem Wert "1" für alle zurückgegebenen IdentNo -s aktualisieren.

würde die temporäre Tabelle wie so definiert werden: Ich denke,

IdentNo | Name | Step1 | Step2 

Antwort

0

Sie Ihre step1.name in Schritt 2 CTE umfassen müssen, ist, was Sie suchen, unter Code überprüfen Sie bitte

;WITH Step1 AS (
     SELECT 
      t1.IdentNo, 
      t1.Name 
     FROM 
      dbo.Table1 t1 
     WHERE 
      t1.CCode <> 'US' 
    ), 

Step2 AS (
     SELECT DISTINCT 
      t2.IdentNo, 
      t2.Name as [Step2Name], 
      s1.Name as [Step1Name] 
     FROM 
      dbo.Table2 t2 
     INNER JOIN 
      Step1 s1 
     ON 
      t2.IdentNo = s1.IdentNo 
     WHERE 
      (t2.artNo='AB504' AND t2.VALUE='1') 
    ) 

-- TEST RESULT 
    SELECT 
     IdentNo, Step1Name as Name, Step1Name as Step1, Step2Name as Step2 
    FROM 
     Step2 

Immer noch nicht klar, welchen Namen Sie für

+0

suchen brauche ich eine Spalte Schritt 1 und Schritt 2, die wahr oder falsch angezeigt .. true = die IdentNo im Schritt Ergebnis zur Verfügung steht. – yuro

Verwandte Themen