SQL: So wählen Sie die früheste Zeile aus
Ich habe einen Bericht, der wie folgt aussieht:
CompanyA Workflow27 June5
CompanyA Workflow27 June8
CompanyA Workflow27 June12
CompanyB Workflow13 Apr4
CompanyB Workflow13 Apr9
CompanyB Workflow20 Dec11
CompanyB Wofkflow20 Dec17
Dies geschieht mit SQL (insbesondere T-SQL-Server version 2005):
SELECT company
, workflow
, date
FROM workflowTable
Möchte ich den Bericht zeigen nur die frühesten Termine für die einzelnen workflow:
CompanyA Workflow27 June5
CompanyB Workflow13 Apr4
CompanyB Workflow20 Dec11
Irgendwelche Ideen? Ich kann nicht dieses heraus. Ich habe versucht, Sie mithilfe einer geschachtelten select, gibt den frühesten Fach Datum, und dann die Einstellung, dass in der WHERE-Klausel. Dies funktioniert gut, wenn es nur eine Firma:
SELECT company
, workflow
, date
FROM workflowTable
WHERE date = (SELECT TOP 1 date
FROM workflowTable
ORDER BY date)
aber dies wird offensichtlich nicht funktionieren, wenn es mehr als eine Firma in die Tabelle. Jede Hilfe ist willkommen!
InformationsquelleAutor der Frage dvanaria | 2011-04-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie einfach
min()
InformationsquelleAutor der Antwort Achim
In diesem Fall eine relativ einfache
GROUP BY
arbeiten kann, aber im Allgemeinen, wenn weitere Spalten, in denen Sie sich nicht um, aber Sie wollen, dass Sie aus der bestimmten Zeile, die Sie zugeordnet sind, Sie können uns wieder auf das detail mit der alle Teile des Schlüssels oder verwenden SieOVER()
:Runnable Beispiel (Wofkflow20 Fehler in den Originaldaten korrigiert)
InformationsquelleAutor der Antwort Cade Roux
InformationsquelleAutor der Antwort ypercubeᵀᴹ