2016-07-30 7 views
0

Ich arbeite an einer Datenbank mit Informationen über Rotlicht-Verletzungen von Anfang des Jahres bis heute.SQL Wählen Sie den höchsten Anstieg der Aktivität im Zeitraum

Die Tabelle Ich arbeite mit ist Violations[TicketID, CameraID, DateOfViolation]

ich bedient eine CameraID mit den meisten Anzahl der Tickets finden möchte, sagen wir, die letzten 7 Tage (die in Violations zu einem neuen Eintrag beträgt). Wenn es in den letzten 7 Tagen keine Aktivität gibt, möchte ich null zurückgegeben werden (d. H. nicht öffnen Sie den Bereich zu den letzten 14 Tagen).

Was ist der Befehl dafür? Ich bin mir nicht sicher, wie man sogar Constraint für die letzten 7 Tage hinzufügen könnte. Ich verbinde mich mit einem Microsoft SQL Server.

+0

Bitte posten Sie, was Sie versucht haben. –

+0

Ich habe nichts versucht. Im OP erwähne ich, dass ich nicht sicher bin, wie ich überhaupt anfangen soll. – user3487243

Antwort

1
select top 1 CameraID 
from violations 
where DateOfViolation >= dateadd(day, -7, getdate()) 
group by CameraID 
order by count(*) desc 
+0

Dies gibt nichts zurück. Wenn ich auf 30 Tage verlängere (was definitiv ein Ergebnis zurückgeben sollte), wird immer noch nichts zurückgegeben. – user3487243

+0

Natürlich. Es tut uns leid. Ich habe es von "7" zu "-7" geändert. –

+0

Es hat funktioniert. Vielen Dank! – user3487243

Verwandte Themen