同一个表,对比两天同一个字段数据 降序排列

0
数据表是这样:
id     username      money      addtime    
1 张三 100 2015-9-22
2 李四 90 2015-9-22
3 王五 80 2015-9-22
4 小明 70 2015-9-22
5 张三 150 2015-9-23
6 李四 190 2015-9-23
7 王五 110 2015-9-23
8 小明 110 2015-9-23


现在需要查询  张三,李四,王五,小明,这四个人23号对比22号money差值,以差值dbmoney降序排列
id     username      money     dbmoney   addtime   
1 李四 190 100 2015-9-23
2 张三 150 50 2015-9-23
3 小明 110 40 2015-9-23
4 王五 110 30 2015-9-23


这个SQL如何写呢
 
已邀请:
3

- 取是能力,舍是境界 2015-09-24 回答

这种问题一般就是找数据的对应关系,想尽办法建立联系
 
with tmp as
(
select 1 id,'张三' username,100 money,'2015-9-22' addtime
union all
select 2, '李四' , 90, '2015-9-22'
union all
select 3, '王五', 80, '2015-9-22'
union all
select 4, '小明', 70, '2015-9-22'
union all
select 5, '张三', 150, '2015-9-23'
union all
select 6, '李四' ,190, '2015-9-23'
union all
select 7, '王五' ,110, '2015-9-23'
union all
select 8, '小明' ,110, '2015-9-23'
)
select t1.username,t1.money,t1.money - t2.money dbmoney,t1.addtime
from tmp t1
left join tmp t2 on t1.username = t2.username and t1.addtime = dateadd(d,1,t2.addtime)
where t2.id is not null

要回复问题请先登录注册