Dai dati di seguito ho bisogno di selezionare il record più vicino ad una data determinata per ciascun ID collegato tramite SQL Server 2005:T-SQL - SELEZIONA per data più vicina e raggruppate per ID
ID Date Linked ID ........................... 1 2010-09-02 25 2 2010-09-01 25 3 2010-09-08 39 4 2010-09-09 39 5 2010-09-10 39 6 2010-09-10 34 7 2010-09-29 34 8 2010-10-01 37 9 2010-10-02 36 10 2010-10-03 36
Quindi, selezionandoli con 01/10/2010 dovrebbe restituire:
1 2010-09-02 25 5 2010-09-10 39 7 2010-09-29 34 8 2010-10-01 37 9 2010-10-02 36
so che questo deve essere possi ble, ma non riesco a girarmi intorno (dev'essere troppo vicino alla fine della giornata: P) Se qualcuno può aiutarmi o darmi una spinta gentile nella giusta direzione, sarebbe molto apprezzato!
EDIT: Inoltre mi sono imbattuto in questo sql per ottenere la data più vicina:
abs(DATEDIFF(minute, Date_Column, '2010/10/01'))
ma non riusciva a capire come incorporare nella query correttamente ...
Grazie
Aggiungi ... si è aggiunto in fase di montaggio, dopo il mio commento. Ok ti scriverò la query completa. – Hogan
Il tuo titolo è fuorviante, probabilmente è "seleziona ordine ID secondo la data più vicina" – dvhh
il tuo esempio usando minuti poiché il primo parametro di datediff probabilmente non funzionerà (dato che non hai tempo nelle date di esempio.) Vuoi usare giorno - che può essere abbr. come 'day',' dd' o 'd'. È interessante notare che tutta la risposta usa un abbr diverso. – Hogan