对大家太简单的一句SQL语句

wfcyl 2011-06-16 12:07:07
在SQL2000中,如何用表A的汇总数据,更新或插入到表B中,如果表B中不存在表A的编码,则插入汇总数据,如果存在表A的编码,则更新汇总数据?急,在线等~~~
...全文
56 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2011-06-16
  • 打赏
  • 举报
回复

--更新已有的
update B set B.MTotal=AA.MTotal
from B
inner join (select MCode,CName,sum(Total) MTotal from A group by MCode,CName) AA
on B.MCode=AA.MCode and B.CName=AA.CName

--新增没有的
insert into B
select A.NOID,A.MCode,A.CName,sum(A.Total) MTotal
from A
left join B on A.MCode=B.MCode and A.CName=B.CName
where B.MCode is null and B.CName is null
group by A.NOID,A.MCode,A.CName
cd731107 2011-06-16
  • 打赏
  • 举报
回复
update b set MTotal=tb.Total
from
(select MCode,CName,sum(Total) as Total
from a group by MCode,CName)
as tb
where tb.MCode=b.MCode and tb.CName=b.CName
wfcyl 2011-06-16
  • 打赏
  • 举报
回复
不要说用循环或游标的方式哦,最好能用一两句SQL语句搞定的
wfcyl 2011-06-16
  • 打赏
  • 举报
回复
简单的说明一下表结构:
明细表A: NOID ,MainCode,MCode,CName ,Total
汇总表B:NOID,MCode,CName,MTotal
现在要把表A中的数据以MCode,CName为条件,汇总Total的数据插入或更新到汇总表B中,在表B中,如果和表A的MCode,CName相同则更新表B中的MTotal的数据,如果不同,则插入到表B中
GoAwayZ 2011-06-16
  • 打赏
  • 举报
回复
你不急。急还不给表结构和数据。。。

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧