如下:
T1 T2
ID INT1 INT2 ID SUM
1 100 200 1
2 100 200 2
1 200 300 3
如何将T1表中ID 相同的所有记录的INT1的字段和 赋到T2表中相同ID 的SUM字段
也就是把 ID为'1'的所有记录的INT1字段的和TEMP=100+200,然后将TEMP赋值到T2的SUM字段当ID等于'1'
怎么写啊?
这个问题第1个回答:
SQL code
update T2
set [SUM] =isnull(t.sum1 ,0)
from T2
left join
(
select id ,sum(INT1) sum1 from T1 group by id
)t on t.id =T2.id
这个问题第2个回答:
SQL code
DECLARE @T1 TABLE(ID INT, INT1 INT)
INSERT @T1 SELECT 1, 100
INSERT @T1 SELECT 2, 100
INSERT @T1 SELECT 1, 200
DECLARE @T2 TABLE(INT2 INT, ID INT, SUM INT)
INSERT @T2 SELECT 200, 1, NULL
INSERT @T2 SELECT 200, 2, NULL
INSERT @T2 SELECT 300, 3,NULL
UPDATE T2 SET SUM=T1.CNT FROM @T2 T2 INNER JOIN (SELECT ID,SUM(INT1)CNT FROM @T1 GROUP BY ID)T1
ON T1.ID=T2.ID
SELECT * FROM @T2
/*INT2 ID SUM
----------- ----------- -----------
200 1 300
200 2 100
300 3 NULL*/
这个问题第3个回答:
update t2 set [sum]=a.int1 from (select id,sum(int1) as int1 from t1 group by id) a inner join t2 b on a.id=b.id
这个问题第4个回答:
楼上怎么把T1表里面的int2字段的值也加进去
这个问题第5个回答:
对于你的问题,update不是做好的解决办法,如果update你的保证t1表的id增加时t2表的id同时增加,否则t2表的数据不完整.
最好是直接删除t2表的数据,然后insert into
sql code :
delete from t2
insert into t2 select id,sum(int1),sum(int2) from t1 group by id
这个问题第6个回答:
update T2
set sum = AA.num
from t2,
(select SUM(INT1) as num,ID as ID
from T1
group by ID) As AA
where AA.ID=t2.ID