更新表中的一行与另一个具有多个记录的行

时间:2013-10-21 09:07:32

标签: sql-server-2008

我有具有唯一控制号的表和其他具有多个控制号的表我想用其他数据更新第一个表; 例子

表1

cont_no         purchase_id
1
2
3

表2

cont_no      Purchase_id
1            Raj
1            swaj
2            dim
2            kim
2            lim

我希望table 1 AS

1      RAJ,SWAJ
2      DIM,KIM,TIM

怎么做?

1 个答案:

答案 0 :(得分:0)

试试这种方式,

UPDATE
T1
SET
T1.Purchase_id = T2.data
FROM TABLE_1 T1
JOIN 
(
    SELECT 
    SS.cont_no,
    (SELECT US.Purchase_id +'; '
    FROM TABLE_2 US
    WHERE US.cont_no = SS.cont_no
            FOR XML PATH('')) [data]
    FROM TABLE_1 SS
    GROUP BY SS.cont_no, SS.Purchase_id
) T2 ON T1.cont_no = T2.cont_no

由于 的Manoj

相关问题