2017-06-08 3 views
0

Ich habe diese Tabelle:SQL Server Zusammenführen von zwei Datensätze in einem

-------------------------------- 
|ID|SN|SEC|Qty|DONE_CON|DONE_BY| 
|--+--+---+---+--------+-------| 
|1A|1A|ETC|124|YES  |  | 
|2B|1A|CON| |  |David | 
|1H|1H|ETC|764|YES  |  | 
|2R|1H|CON| |  |Maria | 
-------------------------------- 

Was möchte ich tun, ist, alle CON als der SEC zu erhalten und zeigen ihre ID, Menge und DONE_BY Werte.

Mein Problem ist, dass Qty aus seinem Referenzdatensatz kommt (RF-Spalte).

Beispiel:

CON Datensatz mit ID 2B 1A als RF hat. So wird die Menge 124 sein.

CON Datensatz mit ID 2R hat 1H als seine RF. So wird die Anzahl 764.

Finale sein Output sollte wie folgt aussehen:

---------------- 
|ID|Qty|DONE_BY| 
|--+---+-------| 
|2B|124|David | 
|2R|764|Maria | 
---------------- 

Derzeit habe ich nur diese Abfrage:

SELECT ID, Qty, DONE_BY FROM TBL_TEST WHERE SEC='CON' 

Bitte, mir helfen. Vielen Dank im Voraus.

+1

@JNevill Oh! Entschuldigung, ich habe es jetzt korrigiert. – theo

Antwort

1

Ich glaube, dass Sie hier ein Self-Join möchten, so dass Sie die Menge von Ihrem passenden SN-> ID greifen können;

SELECT 
    t1.id, 
    t2.qty as qty, 
    t1.Done_By 
FROM yourTable t1 
    INNER JOIN yourTable t2 
     ON t1.sn = t2.id 
WHERE t1.sec='con'; 
+0

Vielen Dank :) – theo

0

Diese Abfrage -

SELECT T1.ID 
    ,T2.Qty 
    ,T1.DONE_BY 
FROM tblSample T1 
INNER JOIN tblSample T2 ON T1.SN = T2.ID 
AND T1.Sec = N'CON'