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

关于两个表的查询,帮忙看下解决方法

2013-09-06 
关于两个表的查询,帮忙看下帮忙看看这两个表,一个帐号 6.1号从pp这个媒体注册进来,然后6.15号又从fb注册进

关于两个表的查询,帮忙看下
关于两个表的查询,帮忙看下解决方法

帮忙看看这两个表,
一个帐号 6.1号从pp这个媒体注册进来,然后6.15号又从fb注册进来,然后6.25号又从tos注册进来
那么这个帐号的充值
6.1号到6.15号的充值算在pp里面
6.15号到6.25号的充值算在 fb里面
6.25之后的充值算在tos里面
要最后得出的结果为:
pp  30
fb   20
tos  83
[解决办法]


create table #ta(AccountNo varchar(100),name varchar(10),regtime datetime)
insert into #ta
select 'wwwwwwwww','pp','2013-06-01'
union all select 'wwwwwwwww','fb','2013-06-15'
union all select 'wwwwwwwww','tos','2013-06-25'

create table #tb(AccountNo varchar(100),addMoney money,addtime datetime)
insert into #tb
select 'wwwwwwwww',10,'2013-06-03'
union all select 'wwwwwwwww',20,'2013-06-04'
union all select 'wwwwwwwww',20,'2013-06-16'
union all select 'wwwwwwwww',50,'2013-06-26'
union all select 'wwwwwwwww',33,'2013-06-29'

select * from #ta
select * from #tb

select a.name,amt=(select sum(addMoney) from #tb b 
where a.AccountNo=b.AccountNo and b.addtime between a.regtime and isnull((select top 1 regtime from #ta c where c.regtime>a.regtime),getdate()))
from #ta a

drop table #ta,#tb


结果:
/*
name amt
-----------------------
pp30.0000
fb20.0000
tos83.0000
*/

热点排行