sql 汇总的问题向高手请教
有两张表,表一根据表二的内容进行汇总求和,如果在表一不存在的记录添加进行汇总。
表一
列1列2
A0
B0
C0
表二
列1列2列3
A12
B1122
C111222
D100200
E200300
F300400
汇总后表一
列1列2
A3
B33
C333
D300
E500
F700
请高手帮忙了!给出一条SQL语句来实现!谢了
[解决办法]
create table 表一(列1 varchar(10), 列2 int)insert into 表一 values('A', 0)insert into 表一 values('B', 0)insert into 表一 values('C', 0)create table 表二(列1 varchar(10),列2 int,列3 int)insert into 表二 values('A', 1 ,2)insert into 表二 values('B', 11 ,22)insert into 表二 values('C', 111 ,222)insert into 表二 values('D', 100 ,200)insert into 表二 values('E', 200 ,300)insert into 表二 values('F', 300 ,400)go--查询select m.列1 , m.列2 + m.列3 列2 from 表二 m left join 表一 n on m.列1 = n.列1/*列1 列2 ---------- ----------- A 3B 33C 333D 300E 500F 700(所影响的行数为 6 行)*/--更新:update 表一 set 列2 = (select m.列2 + m.列3 from 表二 m where m.列1 = n.列1) from 表一 ninsert into 表一 select m.列1 , m.列2 + m.列3 列2 from 表二 m where not exists(select 1 from 表一 n where m.列1 = n.列1)select * from 表一/*列1 列2 ---------- ----------- A 3B 33C 333D 300E 500F 700(所影响的行数为 6 行)*/ drop table 表一 , 表二