我试图计算一行中“出现”a在两个日期之间的范围内并将其按月份分组的次数。获取每个时间行的计数出现在两个日期之间的范围
所以,让我们说,我有看起来像这样的行:
Name | StartDate | EndDate
-----------|-----------------|------------
Mathias | 2017-01-01 | 2017-04-01
Lucas | 2017-01-01 | 2017-04-01
我想获得,显示多少条记录在查询中两个日期之间存在的输出,所以像下面的输出:
Count | Year | Month
-----------|-----------------|------------
2 | 2017 | 1
2 | 2017 | 2
2 | 2017 | 3
2 | 2017 | 4
0 | 2017 | 5
0 | 2017 | 6
我已经试过是:
SELECT COUNT(*) as COUNT, YEAR(StartDate) YEAR, MONTH(StartDate) MONTH
FROM NamesTable
WHERE Start >= '2017-01-01 00:00:00'
AND Slut <= '2017-06-01 00:00:00'
group by YEAR(StartDate), MONTH(StartDate)
哪里,这是给我的EXP ected输出:
Count | Year | Month
-----------|-----------------|------------
2 | 2017 | 1
0 | 2017 | 2
0 | 2017 | 3
0 | 2017 | 4
0 | 2017 | 5
0 | 2017 | 6
由于分组由“开始日期”,我怎么能算在本月行的每一个它扩展跨越?
是否有一个起始日期为每月,以便选择不同的StatDate将提供所需月份的完整列表? – Turo
每条记录都有一个开始日期和结束日期,但这些记录可能会重叠,因为一条记录可能会延长1个月以上。希望它是有道理的 –