这样的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)