sql - TSQL returning the first record -


i have sql server 2008 table following data (small sample)

id                                          date    value 20448d6f-4099-408d-85fe-11ec6690cdb8    2010-06-01  1 20448d6f-4099-408d-85fe-11ec6690cdb8    2010-06-02  2 20448d6f-4099-408d-85fe-11ec6690cdb8    2010-06-03  3 20448d6f-4099-408d-85fe-11ec6690cdb8    2010-06-04  4 20448d6f-4099-408d-85fe-11ec6690cdb8    2010-06-05  null ef595de6-ff57-4625-8254-287f49843445    2010-06-02  2 ef595de6-ff57-4625-8254-287f49843445    2010-06-03  3 ef595de6-ff57-4625-8254-287f49843445    2010-06-04  4 ef595de6-ff57-4625-8254-287f49843445    2010-06-05  null c6f459ef-1493-4864-81c2-e5b55283ef0c    2010-06-04  45 c6f459ef-1493-4864-81c2-e5b55283ef0c    2010-06-05  null 

i running query

select *  [test].[dbo].[testtable] id in           (             select id              [test].[dbo].[testtable]               date='2010-06-05' , value null           )   , date = dateadd(d, -4, '2010-06-05') 

which returns

id                                          date            value 20448d6f-4099-408d-85fe-11ec6690cdb8    2010-06-01          1 

but when record not exist 2010-06-01 return next min date

so results see sample be

id                                          date            value 20448d6f-4099-408d-85fe-11ec6690cdb8    2010-06-01          1 ef595de6-ff57-4625-8254-287f49843445    2010-06-02          2 c6f459ef-1493-4864-81c2-e5b55283ef0c    2010-06-04          45 

i have millions of records how can in t-sql query?

thanks

you can use min aggregate in subquery:

select t.id, t.date, t.value [test].[dbo].[testtable] t     join (         select min(date) mindate, id         [test].[dbo].[testtable]          date >= '6/1/2010'         group id     ) t2 on t.id = t2.id , t.date = t2.mindate t.id in (     select id      [test].[dbo].[testtable]      date='2010-06-05' , value null     ) 

sql fiddle demo


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

qt - Errors in generated MOC files for QT5 from cmake -