首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 语句有关问题,老师帮一下忙

2013-09-05 
sql 语句问题,老师帮一下忙!数据库1:vip1表名:jifen字段:cardidjifenname数据库2:vip2表明:jifen字段:card

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李四
*/


[解决办法]
楼上提供的答案用cardid和name分组应该是不对的,因为有人姓名可能相同,所以建议采用下述方法。 
select vipcode,sumxfjftotal=sum(sumxfjftotal)
from 
(
select * from vip43.dbo.vip
union 
select * from vipdb43.dbo.vip
) t 
group by vipcode

楼主如果要详尽的信息,可以用这个再去用vipcode关联人员表

热点排行