आप की जरूरत है एक कैलेंडर की मेज के लिए यह. आप शुरू के साथ कैलेंडर, और छोड़ दिया के साथ जुड़ें और सब कुछ का उपयोग कर, BETWEEN
तर्क है.
आप उपयोग कर सकते हैं एक असली मेज. या आप उत्पन्न कर सकते हैं, यह मक्खी पर, इस तरह:
WITH
L0 AS ( SELECT c = 1
FROM (VALUES(1),(1),(1),(1),(1),(1),(1),(1),
(1),(1),(1),(1),(1),(1),(1),(1)) AS D(c) ),
L1 AS ( SELECT c = 1 FROM L0 A, L0 B, L0 C, L0 D ),
Nums AS ( SELECT rownum = ROW_NUMBER() OVER(ORDER BY (SELECT 1))
FROM L1 ),
Dates AS (
SELECT TOP (DATEDIFF(day, '20141231', GETDATE()))
Date = DATEADD(day, rownum, '20141231')
FROM Nums
)
SELECT
d.Date,
NumEmployed = COUNT(*)
FROM Dates d
JOIN YourTable t ON d.Date BETWEEN t.Hired AND t.Retired
GROUP BY
d.Date;
यदि आपके तारीख एक बार घटक है, तो आप की जरूरत है का उपयोग करने के लिए >= AND <
तर्क