DateDiff 2 Termine in der gleichen Spalte, SQL
SQL Server 2005 verwenden, die ich brauche, um die datediff
2 Termine, die in der gleichen Spalte, Tabelle sieht wie folgt aus:
OrderNo OpNo ResType LoadedStartDate
-----------------------------------------------------
12345 1 PAINT 2014-05-01 00:00:00.000
12345 2 PAINT 2014-05-02 00:00:00.000
12345 3 PAINT 2014-05-03 00:00:00.000
12345 4 ASMB 2014-05-04 00:00:00.000
67890 1 PAINT 2014-05-02 00:00:00.000
67890 2 PAINT 2014-05-03 00:00:00.000
67890 3 PAINT 2014-05-04 00:00:00.000
67890 4 ASMB 2014-05-05 00:00:00.000
Ich brauche, um das Datum diff OpNo 1 und OpNo 4, wo Sie die gleiche Bestellnummer. Die OpNo immer 1 und 4 als die, die ich bin versucht zu vergleichen, wie die ResType.
Ausgabe müsste wie folgt Aussehen:
OrderNo Difference
----------------------
12345 3
67890 3
Vielen Dank für jede Hilfe 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur join der Tabelle auf sich selbst:
Sollte ziemlich einfach sein
Da innere wählt zurückgeben scalar-Werte - Sie können verwendet werden als Parameter für die DATEDIFF-Funktion
Machen diese Arbeit für alle Bestellungen in einer Tabelle, die Sie tun können, so etwas wie dieses:
Demo: http://sqlfiddle.com/#!3/bc085/5
DISTINCT
fudge der Ressource gesetzt. Diese Abfrage kann ein paar performance-Probleme.CTE Werke Wunder in solchen Szenarien. Für Ihre Anforderung, können Sie die folgende Abfrage verwenden.
Hoffe es hilft
Verstand Sie Sie verwenden können:
Gibt 4 Tage in das datetime-format; vielleicht, weil keine Zeit und aufgrund der Natur des MIN und MAX ist, übernimmt die Datenbank die vier Tage vom Beginn des ersten bis zum Ende von Tag 4.
Wenn Sie nicht haben, um Zeit und Sie wollen eine exakte Zeitspanne zwischen der ersten und der letzten Bestellung, könnte es möglich sein, zu übersetzen, sowohl datetimes in eine ganze Zahl gibt, die jeweils in Millisekunden, subtrahieren Sie die niedrigere Zahl von der höheren Zahl und dann neu übersetzen, die Antwort wieder in das datetime-format.