我試圖計算一行中「出現」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個月以上。希望它是有道理的 –