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要怎么写?
展开
 我来答
badkano
2018-08-22 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部

你这结果不对吧,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(),就可以啦?
追答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式