Query pr. dag med RANK-gruppering
Hej alle,Jeg har pt. gang i at lave et temmelig avanceret SQL query til en SQL2005-database.
Jeg har en tabel indeholdende flg. struktur:
GroupID (int)
Created (datetime)
Value (decimal)
GroupID kan optræde flere gange i tabellen, men med forskellige Created-tidspunkter.
Det jeg gerne vil er, at jeg for en given group vil have det Value ud som ligger tættest på et bestemt klokkeslæt over en given datoperiode.
Jeg er selv kommet frem til følgende udtryk, men som alligevel fejler fordi det ikke giver kun giver mig det Value som er tættest på - men det er på rette spor, mener jeg.
http://pastebin.com/m783bcd78
Jeg anvender en table-valued function som blot returnerer mig én row pr. dato mellem d. 26/08 og 27/08 i det ovenstående eksempel (altså 2 records).
I eksemplet vil jeg have værdien tættest på klokken 11:00 på den givne dato - altså vil jeg have to records ud, så der skal på en eller anden måde grupperes på dato.
Det skal gerne ende op med, at jeg i sidste ende har en table-valued function, som jeg kan kalde via noget alá:
GetDailyValues(GroupID, StartDato, SlutDato, Klokkeslæt)
Håber jeg har gjort mig forståelig og at der er nogle guruer derude, som kan hitte rede i det :)