Мне нужно создать SQL-запрос, который заполняет таблицу, если кто-то был в 3 раза и более за 3 месяца.3 Strikes Query SQL 2008
Данные у меня доступны для меня:
SELECT 'John Doe' AS Name, 1406 AS InstanceID, '2016-01-08 00:00:00.000' AS AbsenceStart, '2016-01-13 00:00:00.000' AS AbsenceEnd, 4 AS NoOfDays, 1 AS rnk
UNION ALL
SELECT 'John Doe' AS Name, 1493 AS InstanceID, '2016-02-02 00:00:00.000' AS AbsenceStart, '2016-02-05 00:00:00.000' AS AbsenceEnd, 4 AS NoOfDays, 2 AS rnk
UNION ALL
SELECT 'John Doe' AS Name, 1536 AS InstanceID, '2016-02-19 00:00:00.000' AS AbsenceStart, '2016-02-22 00:00:00.000' AS AbsenceEnd, 2 AS NoOfDays, 3 AS rnk
UNION ALL
SELECT 'John Doe' AS Name, 1547 AS InstanceID, '2016-02-26 00:00:00.000' AS AbsenceStart, '2016-03-10 00:00:00.000' AS AbsenceEnd, 10 AS NoOfDays, 4 AS rnk
UNION ALL
SELECT 'John Doe' AS Name, 1660 AS InstanceID, '2016-04-04 00:00:00.000' AS AbsenceStart, '2016-04-04 00:00:00.000' AS AbsenceEnd, 0.5 AS NoOfDays, 5 AS rnk
UNION ALL
SELECT 'John Doe' AS Name, 1666 AS InstanceID, '2016-04-07 00:00:00.000' AS AbsenceStart, '2016-04-14 00:00:00.000' AS AbsenceEnd, 6 AS NoOfDays, 6 AS rnk
UNION ALL
SELECT 'John Doe' AS Name, 1698 AS InstanceID, '2016-04-27 00:00:00.000' AS AbsenceStart, '2016-04-28 00:00:00.000' AS AbsenceEnd, 1 AS NoOfDays, 7 AS rnk
Который дает ниже вывод.
Мне нужно разработать запрос, который будет флаг, когда есть более 3 экземпляров в течение периода 90 дней. Таким образом, с вышеуказанной датой 1406,1493,1536,1547,1660,1666 все будут отмечены (исторически). В идеале запрос будет запускаться ежедневно и устанавливать предупреждение сразу после регистрации третьего экземпляра. Я пробовал различные DATEDIFF и полученные запросы, но не могу заставить его работать. Таким образом, желаемый результат будет приведен выше, но ограничен теми, которые попадают в диапазон дат начала первого отсутствия + 90 дней. Я знаю, что мне не хватает чего-то простого!
какой столбец следует сравнивать, чтобы проверить, не попадает ли он в «отсутствие начала + 90 дней»? Это 'AbsenceEnd'? –