SQL Server将两个记录合并为一个

时间:2017-06-08 01:59:19

标签: sql sql-server

我有这张桌子:

--------------------------------
|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  |
--------------------------------

我想要做的是将所有CON作为SEC并显示其ID,Qty和DONE_BY值。

我的问题是数量将来自其参考记录(RF列)。

示例:

ID为2B的CON记录的RF为1A。所以数量将是124。

ID为2R的CON记录的1H为1H。所以数量将是764。

最终输出应如下所示:

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

目前,我只有这个查询:

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

请帮帮我。提前谢谢。

2 个答案:

答案 0 :(得分:1)

我相信你想在这里自我加入,所以你可以从匹配的SN-> ID中获取数量;

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';

答案 1 :(得分:0)

尝试此查询 -

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'