Есть ли простая строка (или две) кода, который будет извлекать записи до минимальной даты в другой таблице? - PullRequest
0 голосов
/ 03 апреля 2019

Я хочу отменить посещение отделения неотложной помощи до того, как участники дата первого обращения .У всех людей своя первая дата лечения, и ни одна из них не наступила до 1 января 2012 года.

Так что, если у участника назначена первая дата лечения 24 февраля 2013 года, я хочу знать, сколько раз он посещал РП за год доэта дата

Эти минимальные даты находятся в другой таблице, и я не могу использовать минимальную дату в своей функции DATEADD.Мысли?

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Edit:

Я только что полностью обновил свой ответ. Извините за путаницу.

Итак, у вас есть как минимум две таблицы:

  • Скорая помощь
  • Информация об обработке

Давайте назовем эти две таблицы [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

0 голосов
/ 03 апреля 2019

Одним из возможных решений является использование CTE для захвата посещений между интересующими вас датами, а затем присоединение к нему с вашим выбором.

Вот пример:

Rextester

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...