DECLARE @TB TABLE(SN INT,[<1] INT, [<2] INT, [<3] INT)
INSERT  @TB
SELECT 1, NULL, NULL, NULL UNION ALL
SELECT 2,  3,  2,  1 UNION ALL 
SELECT 3,  2,  4,  7 UNION ALL 
SELECT 4,  2,  9,  10UPDATE @TB SET [<1]=COL1,[<2]=COL2,[<3]=COL3
FROM @TB AS A,(SELECT SUM([<1]) AS COL1,SUM([<2]) AS COL2,SUM([<3]) AS COL3 FROM @TB WHERE SN<>1) B
WHERE SN=1SELECT * FROM @TB
/*
SN          <1          <2          <3          
----------- ----------- ----------- ----------- 
1           7           15          18
2           3           2           1
3           2           4           7
4           2           9           10
*/

解决方案 »

  1.   

    create TABLE tb(SN INT,[<1] INT, [<2] INT, [<3] INT)
    INSERT tb
    SELECT 1, NULL, NULL, NULL UNION ALL
    SELECT 2,  3,  2,  1 UNION ALL 
    SELECT 3,  2,  4,  7 UNION ALL 
    SELECT 4,  2,  9,  10
    goupdate tb
    set [<1] = (select sum([<1]) from tb where sn <> 1),
        [<2] = (select sum([<2]) from tb where sn <> 1),
        [<3] = (select sum([<3]) from tb where sn <> 1) 
    where sn = 1select * from tbdrop table tb/*SN          <1          <2          <3          
    ----------- ----------- ----------- ----------- 
    1           7           15          18
    2           3           2           1
    3           2           4           7
    4           2           9           10(所影响的行数为 4 行)
    */