Z danych poniżej muszę wybrać rekord najbliższy określonym terminie za każdy Linked ID za pomocą SQL Server 2005:T-SQL - Selekcja według najbliższym terminie i pogrupowane według 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
więc wybierając je za pomocą 01/10/2010 powinien zwrócić:
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
wiem, że to musi być Possi ale wydaje mi się, że nie mogę tego obejść (musi być zbyt blisko końca dnia: P) Jeśli ktoś może mi pomóc lub delikatnie popchnąć we właściwym kierunku, byłoby to bardzo cenne!
EDIT: Również mam natknąć tej sql aby uzyskać możliwie najbliższe datę:
abs(DATEDIFF(minute, Date_Column, '2010/10/01'))
ale nie mógł dowiedzieć się, jak włączyć do prawidłowo zapytania ...
Dzięki
Dodaj ... dodano w edycji po moim komentarzu. Ok, napiszę ci kompletne zapytanie. – Hogan
Twój tytuł wprowadza w błąd, prawdopodobnie jest to "wybierz kolejność identyfikatorów według najbliższej daty" – dvhh
Twój przykład za pomocą minut jako pierwszego parametru do datediff prawdopodobnie nie będzie działać (ponieważ nie masz czasu w przykładowych datach). Chcesz użyć dzień - który może być skrócony jako 'dzień',' dd' lub 'd'. Co ciekawe, wszystkie odpowiedzi używają innego abbr. – Hogan