我有两个数据字段--MS Access中的ID,SubscriptionStartDate,SubscriptionEndDate和MonthlyCost。订阅开始日期和结束日期将涵盖多个月甚至几年,我想为所有ID的开始日期和结束日期之间的每个月汇总每月成本。
在Access中使用SQL,我正在寻找类似的输出:
月TotalMonthlyCost
Jan-13 100000 - >每月总费用为1月13日,总计所有ID。
Feb-13 150000 - >每月总费用为2月13日,总计所有ID。 ...
答案 0 :(得分:2)
我认为你可以这样做:
select
m.month
,sum(d.MonthlyCost)
from
months as m
inner join data as d
on d.SubscriptionStartDate < m.endDate
and d.SubscriptionEndDate > m.start
group by
m.month
您需要创建表格“月”,如下所示:
month | start | end
'jan-13' | 01/01/2013 | 31/01/2013
'feb-13' | 01/02/2013 | 28/02/2013
'mar-13' | 01/03/2013 | 31/03/2013
但这就是说,如果你在那个月(甚至一天),那么你应该加入rmonthly订阅。这是对的吗?
注意:我没有访问权限,我不记得我的语法是否适合访问。 (我认为你需要在join子句中使用括号或其他东西)