我必须从SQL表中进行每日报告,其中包含ID(用户ID),时间戳,余额交易。
我的任务:每个交易都存储在表格中。我必须每天都知道所有用户的总结。
例如:
27/06/2016 8:10 User1 50$
27/06/2016 10:22 User1 75$
27/06/2016 11:32 User2 10$
28/06/2016 09:22 User3 40$
28/06/2016 17:35 User1 22$
在这种情况下,结果必须如下:
27/06/2016: 85$
(75 + 10),因为上次用户1的余额为75,用户为10
28/06/2016: 72$
(22 + 10 + 40),因为上次用户1的余额为22和用户2 10(昨天修改了但我必须算一算!!!)和user3 22 $
请帮忙。
由于
答案 0 :(得分:0)
好的,新的解决方案......
确定每个用户每天的最后余额,并按天计算:
with CTE as
(
select t.*,
row_number()
over(partition by user, cast(t_date as date) order by t_date desc) as rn
from transactions t
)
select cast(t_date as date) as t_date, sum(amount) as total_amount
from CTE
where rn = 1
group by cast(t_date as date)