当前位置: 代码迷 >> Sql Server >> sql 汇总的有关问题向高手请问
  详细解决方案

sql 汇总的有关问题向高手请问

热度:93   发布时间:2016-04-27 13:35:06.0
sql 汇总的问题向高手请教
有两张表,表一根据表二的内容进行汇总求和,如果在表一不存在的记录添加进行汇总。
表一
列1 列2
A 0
B 0
C 0

表二
列1 列2 列3
A 1 2
B 11 22
C 111 222
D 100 200
E 200 300
F 300 400

汇总后表一
列1 列2
A 3
B 33
C 333
D 300
E 500
F 700
请高手帮忙了!给出一条SQL语句来实现!谢了

------解决方案--------------------
SQL code
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 表一 , 表二
  相关解决方案