我已经查看并找到了运行总计,但是没有任何东西可以将日期按年和月分组。我从下面的查询中获得的结果显示了按日期显示的滚动余额,并与每天的交易次数相加。
select
acct,
year(trans_date) 'Year',
month(trans_date) 'Month',
sum(dom_amount) over (partition by acct order by year(trans_date), month(trans_date)) as TotalBalance
from ledger_mst
where acct = 1100
group by
dom_amount,
acct,
year(trans_date),
month(trans_date),
trans_date
order by trans_date
截至目前,我应该有39行(每年2015年9月至2018年11月),每个月末都有滚动余额。目前,我的结果中有16,477行。看来我的分组依据已损坏,我不确定如何解决。
我的SQL技能充其量只是中等水平。放开我谢谢!
答案 0 :(得分:0)
您不应该在dom_amount
子句中包含trans_date
或group by
,因为这将导致这些字段的每个不同值生成新的结果行... < / p>
因此,您需要更改order by
子句。
只需从查询中删除它,它就可以正常工作。同时删除over
子句。
select
acct,
year(trans_date) 'Year',
month(trans_date) 'Month',
sum(dom_amount) TotalBalance
from ledger_mst
where acct = 1100
group by
acct,
year(trans_date),
month(trans_date)
order by
year(trans_date),
month(trans_date)