SQL多重复数据中取时间最近的一条进行求和,同一张表
在同一张表里tablea,数据如下:CarNoMoneyTime142017/12/21262017/12/22132017/12/23352017/12/2425201...
在同一张表里table a,数据如下:
CarNo Money Time
1 4 2017/12/21
2 6 2017/12/22
1 3 2017/12/23
3 5 2017/12/24
2 5 2017/12/25
3 4 2017/12/26
3 1 2017/12/27
2 4 2017/12/28
想要的结果是求当CarNo相同时取时间最近的一条,然后求和Money的值。
也就是,从table a中取出
CarNo Money Time
1 3 2017/12/23
2 4 2017/12/28
3 1 2017/12/27
然后对money进行求和,得到的值应该是8.
请问,这样的SQL要怎么写? 展开
CarNo Money Time
1 4 2017/12/21
2 6 2017/12/22
1 3 2017/12/23
3 5 2017/12/24
2 5 2017/12/25
3 4 2017/12/26
3 1 2017/12/27
2 4 2017/12/28
想要的结果是求当CarNo相同时取时间最近的一条,然后求和Money的值。
也就是,从table a中取出
CarNo Money Time
1 3 2017/12/23
2 4 2017/12/28
3 1 2017/12/27
然后对money进行求和,得到的值应该是8.
请问,这样的SQL要怎么写? 展开
1个回答
展开全部
你这结果不对吧,carno=1的时间最小的2017/12/21,你写的2017/12/23
select sum(t.money)
from
(select a.* from a,
(select carno,min(time) time from a group by carno) b
where a.carno=b.carno and a.time=b.time) t
基本这样,各种数据库语句差不多都是这个。
追问
谢谢回答,是要距离现在时间最近的一条,所以是CarNo=1时取的时间是2017/12/23,请问如果是这样的话,是不是将您提供的答案中min()换成max(),就可以啦?
追答
对
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询