sql 语句问题,老师帮一下忙!
数据库1:vip1 表名:jifen 字段:cardid jifen name
数据库2:vip2 表明:jifen 字段:cardid jifen name
实现的目的:将两个表中的相同的人 积分相加 插入一个新表中
例如
vip1 jifen表
cardid jifen name
1 2 张三
2 3 张四
vip2 jifen表
cardid jifen name
1 10 张三
3 5 李四
插入新表的结果为
cardid jifen name
1 12 张三
2 3 张四
3 5 李四
给个完整的语句,谢谢!
[解决办法]
insert into 新表 (cardid,name,jifen)
select cardid,name,sum(jifen) jifen
from
(
select cardid,jifen,name from vip1
union all
select cardid,jifen,name from vip2
) a
group by cardid,name
[解决办法]
if OBJECT_ID('tempdb..#tempA', 'u') is not null drop table #tempA;
go
create table #tempA( [cardid] varchar(100), [jifen] int, [name] varchar(100));
insert #tempA
select '1','2','张三' union all
select '2','3','张四'
if OBJECT_ID('tempdb..#tempB', 'u') is not null drop table #tempB;
go
create table #tempB( [cardid] varchar(100), [jifen] int, [name] varchar(100));
insert #tempB
select '1','10','张三' union all
select '3','5','李四'
--SQL:
SELECT [cardid], jifen = SUM(jifen), name
FROM
(
SELECT cardid, jifen, name FROM #tempA
UNION ALL
SELECT [cardid], jifen, name FROM #tempB
) t
GROUP BY cardid, name
ORDER BY MIN(cardid)
/*
cardidjifenname
112张三
23张四
35李四
*/
select vipcode,sumxfjftotal=sum(sumxfjftotal)
from
(
select * from vip43.dbo.vip
union
select * from vipdb43.dbo.vip
) t
group by vipcode