Se ho un programma presso un'officina e voglio selezionare tutte le auto nella mia tabella di RepairOrder dove il chilometraggio dell'ordine di riparazione successivo è inferiore al chilometraggio dell'ordine di riparazione precedente, come posso costruire quell'istruzione selezionata?Come posso selezionare le righe in cui il numero è andato giù come data è salito
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 questo caso sarei selezionando solo VehicleID 1 perché ha un RepairDate che è maggiore della riga precedente, ma un chilometraggio che è inferiore alla riga precedente. Potrebbero esserci anche 3 file con lo stesso veicolo e la data centrale ha un chilometraggio di 3 o 5000000, e dovrò selezionare anche quelle di VehicleID.
risultati di utilizzare la funzione LEAD()
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
Non capisco il campione 3 righe, si potrebbe approfondire o includere sui dati di esempio come macchina 5. Anche ciò che RDBMS stai usando? –
Sto usando il server Sql con ssms e ho appena aggiunto i dati per te. Quindi la query dovrebbe selezionare anche vehicleID 5 poiché la riparazione centrale ha un chilometraggio inferiore alla riga precedente. E avrei anche dovuto dire 3 o più righe. Potrebbero esserci 10 ordini di riparazione per 1 veicolo, e 1 dei chilometraggi è rovinato e devo segnalarlo. – IQtheMC
quale versione di SQL Server? quindi questo è solo per rilevare l'errore dei dati. Ma poi vuoi Vehicle ID o ID dove si verifica l'errore? –