比如我有一个消费记录,卡号 交易时间 交易流水 交易金额
18292 2017-09-29 12:09:37 10252453 7 36.41
18292 2017-09-29 07:27:29 10241620 4 36.41
18292 2017-09-28 22:30:53 10236377 2 36.41
18292 2017-09-28 19:09:53 10235728 2 36.41
18292 2017-09-28 18:56:18 10231121 13.5 36.41
18292 2017-09-28 12:06:04 10194080 7 36.41
18292 2017-09-28 07:28:30 10185337 2.7 36.41
18292 2017-09-28 07:27:38 10184724 3.5 36.41
18292 2017-09-27 21:18:11 10177431 2 55.42
18292 2017-09-27 18:56:49 10173195 5.5 22.21
18292 2017-09-27 12:26:58 10142600 2.3 22.21
18292 2017-09-27 12:07:23 10136255 7 22.21
先不要管数据的正确与否,我现在查询语句如下:
select kh,kpzt,kpye,
sum( case when to_char(jysj,'mm-dd')=to_char(sysdate,'mm-dd') then jyje else 0 end) jrxf,
sum(case when to_char(jysj,'mm-dd')=to_char(sysdate-1,'mm-dd') then jyje else 0 end) zrxf
,sum(case when to_char(jysj,'yyyy-mm')=to_char(sysdate,'yyyy-mm') then jyje end) byxf
from a
where userid='18292'
group by userid,kpzt,kpye
order by jysj desc
我现在用这个查下来的数据,因为卡片余额的原因,计算出来的数据就会出现多条记录,jrxf=今日消费,zrxf=昨日消费,byxf=本月消费
我现在想通过case when 查找交易时间离当前时间最近的一条记录显示,我这个语句要如何修改,可有大神在线解答吗?