Wenn ich ein Programm in einer Reparaturwerkstatt habe und alle Autos in meiner RepairOrder - Tabelle auswählen möchte, ist die Laufleistung des späteren Reparaturauftrags geringer als die Kilometerstand des vorherigen Reparaturauftrags, wie kann ich diese Select-Anweisung erstellen?Wie kann ich Zeilen auswählen, in denen die Zahl mit steigendem Datum gesunken ist?
ID VehicleID Mileage RepairDate
01 1 18425 2013-08-13
02 1 28952 2013-02-26
03 2 22318 2012-08-27
04 3 21309 2012-08-07
05 3 16311 2012-02-27
06 3 16310 2012-02-11
07 4 11098 2011-03-23
08 5 21309 2012-08-07
09 5 16309 2012-02-27
10 5 16310 2012-02-11
In diesem Fall soll ich nur VehicleID 1 Auswahl werden, weil es eine RepairDate hat, die größer als die vorherige Zeile, sondern ein Kilometerstand, die kleiner als die vorhergehende Zeile ist. Es könnte auch 3 Reihen mit demselben Fahrzeug geben und das mittlere Datum hätte eine Laufleistung von 3 oder 5000000, und ich werde auch diese Fahrzeug-IDs auswählen müssen.
Ergebnisse der LEAD() Funktion
ID RepairDate Mileage
25 2011-12-23 45934
48 2009-02-26 13
48 2009-04-24 10
71 2011-07-26 31163
71 2015-01-13 65656
ich nicht Ihre 3 Reihen Probe verstehen, könnten Sie es auf den Beispieldaten als Auto 5. Auch erarbeiten oder beinhalten, was rdbms sind Sie mit? –
Ich benutze SQL-Server mit SSM, und ich habe nur die Daten für Sie hinzugefügt. Daher sollte die Abfrage auch die Fahrzeug-ID 5 auswählen, da die mittlere Reparatur eine geringere Kilometerleistung hat als die davor liegende Zeile. Und ich hätte auch 3 oder mehr Zeilen sagen sollen. Es könnte 10 Reparaturaufträge für 1 Fahrzeug geben, und 1 der Kilometer ist vermasselt und ich muss es kennzeichnen. – IQtheMC
Welche Version von SQL Server? das ist also nur Datenfehler zu erkennen. Aber dann wollen Sie VehiculeID oder ID wo Fehler passieren? –