Я заинтересован в том, чтобы в запросе Microsoft SQL Server оставались только отдельные лица, значения которых превышают определенный порог в две отдельные даты.Если у людей в два раза выше 150 баллов, а второе свидание наступает как минимум через 7 дней после первого свидания, я хотел бы вернуть их удостоверение личности, вторую дату, когда их балл был выше 150, и балл на втором свидании.
Вот данные:
SubjectID DATE Score
001 01/11/2014 147
001 02/11/2013 151
002 02/10/2015 152
003 08/12/2013 155
002 01/31/2012 159
003 07/19/2016 157
Так что я за результаты, я хотел бы вернуть следующее:
SubjectID DATE Score
002 02/10/2015 152
003 07/19/2016 157
Согласно предыдущему вопросу, который я задалЯ использую следующий код для возврата второй даты:
SELECT *
FROM Clinic a
WHERE a.score > 150
AND a.date IN (SELECT MAX(b.date)
FROM Clinic b
WHERE b.subjectId = a.subjectId
AND b.score > 150)
Я думаю, мне нужно добавить что-то вроде следующего в оператор WHERE:
AND (b.date - a.date) > 7;