Ich muss eine SQL-Abfrage erstellen, die eine Tabelle auffüllt, wenn jemand 3 Mal oder öfter in einem Zeitraum von 3 Monaten war.3 Strikes Query SQL 2008
Die Daten, die ich mir zur Verfügung haben, ist:
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
, die den unten Ausgang gibt.
Ich brauche eine Abfrage zu entwerfen, die Flagge, wenn es mehr als drei Instanzen innerhalb eines Zeitraums von 90 Tagen. Mit dem oben genannten Datum 1406,1493,1536,1547,1660,1666 würden alle (historisch) auf der Fahne stehen. Idealerweise wird die Abfrage täglich ausgeführt und die Warnung wird gesetzt, sobald eine dritte Instanz protokolliert wird. Ich habe verschiedene DATEDIFFs und abgeleitete Abfragen ausprobiert, aber es scheint nicht zu funktionieren. Also die gewünschte Ausgabe wäre die obige Tabelle, aber beschränkt auf diejenigen, die in den Datumsbereich der ersten Abwesenheit Start + 90 Tage fallen. Ich weiß, ich vermisse etwas Einfaches!
welche Spalte sollte vergleichen, um zu überprüfen, ob es fällt in Abwesenheit Start + 90 Tage? Ist es "Abwesenheitsende"? –