Я пытался спросить об этом раньше, но не думаю, что хорошо выполнил свою формулировку, поэтому извиняюсь.
У меня есть таблица, содержащая данные согласно:
;WITH MONTHSCTE AS (
SELECT
ReportMonth = DATEADD(MONTH, -1, DATEADD(DAY, 1, EOMONTH(GETDATE(), -OFFSET.X))),
Start12Months = DATEADD(MONTH, -12, DATEADD(DAY, 1, EOMONTH(GETDATE(), -OFFSET.X))),
End12Months = EOMONTH(DATEADD(MONTH, -1, DATEADD(DAY, 1, EOMONTH(GETDATE(), -OFFSET.X)))),
[Month] = DATEPART(MONTH, DATEADD(MONTH, -1, DATEADD(DAY, 1, EOMONTH(GETDATE(), -OFFSET.X)))),
[MonthName] = DATENAME(MONTH, DATEADD(MONTH, -1, DATEADD(DAY, 1, EOMONTH(GETDATE(), -OFFSET.X)))),
[Year] = DATEPART(YEAR, DATEADD(MONTH, -1, DATEADD(DAY, 1, EOMONTH(GETDATE(), -OFFSET.X))))
FROM (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)) OFFSET(X)
)
,CTE2 AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY ReportMonth) AS [Order]
,*
FROM
MONTHSCTE
)
SELECT * FROM CTE2
Я хотел бы использовать диапазоны дат в этом наборе данных, чтобы запросить другой.
Допустим, у меня есть таблица под названием Attendances, показывающая PatientID и дата посещения. Я хотел бы запросить эту таблицу «Посещаемость» для каждого из диапазонов дат в указанном выше наборе данных.
Итак:
Подсчет количества пациентов в период между 2018-05-01 и 30- 04-2019 посещали 1,2,3,4,5,6 и c раз в каждом соответствующем диапазоне дат.
То же самое для пациентов в период с 01-06-2018 по 2019-05-31 и так далее для каждого диапазона в указанном наборе данных.
Конечный продукт должен выглядеть примерно так: