Ich habe eine Tabelle namens TaskLog, die die Ergebnisse der verschiedenen geplanten Aufgaben enthält. Es hat (für die Zwecke dieser Frage) diese Säulen:SQL-Abfrage Hilfe - top N-Werte von T.a gruppiert von T.b, T. c
- TaskLogID: eindeutige ID für diesen Datensatz
- TaskId: ID der Aufgabe, die
- Host-Name lautete: Name des Rechners, auf dem es lief
- RunDate: Datum und Uhrzeit, an dem die Aufgabe
- Output ausgeführt wurde: Ausgang dieses Versuchs
um die Ausgabe aus dem aktuellen Lauf jedes ta zu bekommen sk, ich hatte mehrere Anfragen wurde die Ausführung, bis ich diese einzelne Abfrage, die viel schneller ist ausgearbeitet:
SELECT TaskLog.TaskID, TaskLog.HostName, TaskLog.Output
FROM TaskLog
INNER JOIN (
SELECT TaskLogID, TaskID, HostName, MAX(RunDate)
FROM TaskLog
GROUP BY TaskID, HostName
) AS Latest
USING (TaskLogID)
Jetzt würde ich die Ausgabe von jedem der letzten N läuft jeder Aufgabe erhalten möchte, für einige feste N, anstatt nur den letzten Lauf. Gibt es eine Möglichkeit, dies in einer einzigen Abfrage zu tun?
TIA
Danke, habe ich etwas ähnliches nach dem Lesen der Webseite, die Sie unten verlinkt. –