#sql #sql-server #claims
#sql #sql-server #утверждения
Вопрос:
Я хочу перенести посещения отделения неотложной помощи до первой даты лечения участников. У всех разные даты первой обработки, и ни одна из них не произошла до 01 января 2012 года.
Итак, если у участника дата первого обращения 24 февраля 2013 года, я хочу знать, сколько раз он посещал отделение неотложной помощи за год до этой даты.
Эти минимальные даты расположены в другой таблице, и я не могу использовать минимальную дату в моей функции DATEADD. Мысли?
Комментарии:
1. Примеры данных и желаемые результаты действительно помогли бы.
2. 7864753590 (идентификатор) 2014-07-01 (дата первого обращения) 4 (количество посещений)
Ответ №1:
Одно из возможных решений — использовать CTE для записи посещений между интересующими вас датами, а затем присоединиться к этому с помощью вашего выбора.
Вот пример:
Комментарии:
1. Спасибо, я собираюсь попробовать!
2. Это не сработало… Я думаю, что, делая шаг назад, мне нужна помощь в выборе дат, которые произошли до минимальной даты обработки, расположенной в другой таблице. Итак, мне нужны все даты, которые произошли до этой даты, и это отличается для каждого человека.
Ответ №2:
Редактировать:
Я только что полностью обновил свой ответ. Извините за путаницу.
Итак, у вас есть как минимум две таблицы:
- Посещения отделения неотложной помощи
- Информация об обработке
Давайте назовем эти две таблицы [ERVisits] и [Treatments]. Я полагаю, что в обеих таблицах есть некоторое поле id для пациента / участника. Давайте назовем это [MemberID].
Как насчет этого концептуального запроса:
WITH [FirstTreatments] AS
(
SELECT [MemberId], MIN([TreatmentDate]) AS [FirstTreatmentDate]
FROM [Treatments]
GROUP BY [MemberId]
)
SELECT V.[MemberId], T.[FirstTreatmentDate], COUNT(*) AS [ERVisitCount]
FROM [ERVisits] AS V INNER JOIN [FirstTreatments] AS T ON T.[MemberId] = V.[MemberId]
WHERE DATEDIFF(DAY, V.[VisitDate], T.[FirstTreatmentDate]) BETWEEN 0 AND 365
GROUP BY V.[MemberId], T.[FirstTreatmentDate]
Этот запрос должен показать, сколько раз пациент / участник посещал отделение неотложной помощи за год до даты его / ее первого лечения.
Вот тестер:https://rextester.com/UXIE4263