读书人

这样的SQL怎么来写,是不是可以用游标,

发布时间: 2012-01-19 00:22:27 作者: rapoo

这样的SQL如何来写,是不是可以用游标,在线等待
表A tblA
f1 fNumber
100 900
101 200
102 300

表B tblB
f1 fNumber
100 300
101 20
130 500

先从表B(tblB)中查询,如果f1的值在表A中存在,则将表A(tblA)中fNumber的值相加,如果不存在,则在表A中插入新的值,得到的结果如下:

f1 fNumber
100 1200
101 220
102 300
130 500



[解决办法]
update tblA set fNumber=A.fNumber+B.fNumber from tblA A,tblB B where A.f1=B.f1

insert into tblA select * from tblB where not exists(select 1 from tblA where f1=tblB.f1)
[解决办法]
--更新tblA,将tblB中f1相同的fNumber值累加到tblA中对应记录
update A set fNumber=A.fNumber+B.fNumber from tblA A,tblB B where A.f1=B.f1

--将tblB在tblA中不存在的f1所对应记录新增到tblA
insert into tblA select * from tblB where not exists(select 1 from tblA where f1=tblB.f1)

读书人网 >SQL Server

热点推荐