Спасибо за просмотр.
Я работаю в больнице, и у меня есть требование подсчитывать пациентов, которые посещали A & E 7 или более раз за последние 12 месяцев - они называются пользователями высокой интенсивности.
Мне нужно это для каждого месяца в течение последних 12 месяцев.
Например:
Для марта 2020 г. мне нужен подсчет всех пациентов, которые посетили 7 или более раз в период с 01 / 04/19 и 31/03/2020, сгруппированные по количеству посещений
Для февраля 2020 г. мне нужен подсчет всех пациентов, которые посещали 7 или более раз в период с 01/03/19 по 29/02 / 2020 и т. Д. Для каждого из предыдущих 12 месяцев, сгруппированных по количеству посещений. Итак:
7 посещений, 8 посещений, 9 и т. д. c ...
Я понимаю, что это будет своего рода динамический c запрос, однако я не слишком далеко продвинулся в этом , Я хотел бы избежать курсора, если это возможно.
До сих пор я нашел следующий скрипт для создания отдельных месяцев
with MonthsCTE as
(
select
BeginDate = dateadd(month, -1, dateadd(day, 1, eomonth(getdate(), -Offset.X))),
EndDate = dateadd(day, 1, eomonth(getdate(), -Offset.X))
from
(values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11)) Offset(X)
)
Моя таблица выглядит так:
SELECT
ae.DW_PATIENT_ID,
ae.AE_ARRIVAL_DATE_TIME,
FROM
AE_ATTENDANCE ae
Спасибо