我有个问题.所以我在数组中有此数据:
id idm amount date
1 5 10 2017-08-23 12:12:12
2 5 20 2017-08-23 12:14:16
3 6 13 2017-08-23 18:00:00
4 5 25 2017-08-24 19:00:00
5 5 160 2017-08-24 19:30:00
因此,想法是从日期2017-08-23获得金额的总和,并与日期2017-08-24比较.例如,如果在这种情况下,用户的这两个值之间的差大于20,那么我找到了一个用户.
我的建议是使2 sql的:
select sum(amount) as prevIoUs_amount, idm
FROM table
WHERE date >= '2017-08-23 00:00:00' AND date <= '2017-08-23 23:59:59'
GROUP By idm
select sum(amount) as actual_amount, idm
FROM table
WHERE date >= '2017-08-24 00:00:00' AND date <= '2017-08-24 23:59:59'
GROUP By idm
并在PHP中进行处理,但是可能存在在sql中执行该操作的方法.你能帮我吗 ?提前谢谢,我的英语不好意思.
解决方法:
如果我正确理解,这就是您想要的:
select
idm,
sum(case when date >= '2017-08-23 00:00:00' AND date <= '2017-08-23 23:59:59' then amount end) -
sum(case when date >= '2017-08-24 00:00:00' AND date <= '2017-08-24 23:59:59' then amount end) as diff
from your_table
group by idm
having diff not between -20 and 20