中易网

SQL多表联合汇总,并对相同字段值求和,

答案:4  悬赏:60  
解决时间 2021-01-23 05:53
SQL多表联合汇总,并对相同字段值求和,
最佳答案
是否可以理解为A表+B表中的内容减去C表中NAME相同的,并且加上C表中A表和B表都没有的?可以这样做
create Table #TableA(ID int,NAME varchar(5),TNUM int)
create Table #TableB(ID int,NAME varchar(5),TNUM int)
create Table #TableC(ID int,NAME varchar(5),TNUM int)

insert into #TableA values (1,'AA',10),(2,'BB',20),(3,'CC',30)
insert into #TableB values (1,'AA',40),(2,'BB',50),(4,'DD',60)
insert into #TableC values (1,'AA',50),(2,'BB',70),(3,'CC',30),(5,'EE',80)

select * into #Temp from #TableA union all select * from #TableB

merge #Temp t1 using #TableC t2
on t1.NAME = t2.NAME
when matched then
delete
when not matched then
insert values (t2.ID,t2.NAME,-t2.TNUM);

select * from #temp
#temp中的内容最终为:
IDNAMETNUM
----------- ----- -----------
5 EE-80
4 DD60
其中AA,BB,CC在C表中出现,即被筛除,保留DD。
EE未出现在A,B表中,结果记为负值。
可以写一个存储过程,把#temp的内容返回即可。
全部回答
可以啊,直接sum就好了
提示一下,group by 和 count ,这个事mysql中的,不知道sql server 中的是什么样子
我学的是sql server,不懂你问的是这个数据库么?
select tableA.TID as ID,tableA.TNAME as NAME,tableA.TNUM+tableB.TNUM as NUMBER into tableC from tableA inner join tableB on tableA.TID=tableB.TID
能帮你的只有这些了
至于453655422说的count不能用,是用于统计个数的,同样SUM也不能用,SUM虽然是求和函数,但是是求记录的总和,还有就是只要是Transact-SQL语句在各种数据库都是通用的,所以group by 和 count 在sql server中和mysql一样用法
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我公司专业格力 海尔 美的 大金 约克 特灵中
个性结婚请柬如何制作?
每次都想让自己强大,但是弱者怎么那么命好
怎样让电子表格中的求和数自动出现
我是一片一片的掉发是鬼剃头吗?
求文!要攻受地位能力气场相近,相处模式老夫
寻穿越电视剧里的小说
谁知道近视眼的故事?
你好,我车是07款君越,上面显示请检修牵引系
子禾瑜伽地址在什么地方,我要处理点事
海门市地图
我孩子脸上有斑点是胎记吗?
女生夏季必备单品有哪些
俄罗斯做试管婴儿重要的是哪些步骤?
蔓泽丽彩妆工作室怎么去啊,我要去那办事
推荐资讯
最是恨别离下一句是什么
时代之星怎么样
袁大头银元切磋交流琢磨的朋友有木有?
开饭店赠送客人什么食品为好.
英国旅游签证都是两年内多次往返吗
中国电信(堡镇营业厅)地址在哪,我要去那里办
怎样避免胎儿唇腭裂?
NESPRESSO地址在什么地方,想过去办事
介绍韩国旅游看点。
大家一起画黑板报的作文
做自体脂肪丰苹果肌费用是多少,北京京韩做的
彩晶膜可以贴地板么?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?