04. september 2001 - 13:14
Der er
3 kommentarer og
1 løsning
Udtag den nyeste observation pr. bruger
Jeg har en tabel, hvor data tidsstemples når det indsættes. Det data der indsættes, indsættes af flere forskellige brugere. Mit problem er, at jeg gerne vil fremvise en liste, hvor det fremgår hvad der er af data i tabellen, men jeg vil kun se det nyeste data for hver bruger.
Eks: antag at tabellen ser således ud:
ID, data, Tidsstempel
23, \'Burger\', 12/1-99
24, \'Hø-fest\', 16/2-99
24, \'Asfalt\', 17/6-01
23, \'Computer\', 18/3-99
Så skulle resultatet efter udførelsen af forespørgelsen gerne blive følgende:
24, \'Asfalt\', 17/6-01
23, \'Computer\', 18/3-99
/zeptic
04. september 2001 - 13:35
#1
Måske du kan gøre sådan :
select id, destinct(data), tidsstempel from <table> order by ID
/Martin
04. september 2001 - 13:46
#2
martinlind>> Nej, det synes jeg ikke giver nogen mening.
Jeg tror man skal ind i en \'group by ID\', men hvorledes man udtager den første observation når de er sorteret efter tidsstempel kan jeg ikke lige se
04. september 2001 - 13:48
#3
Prøv med nedenstående, hvor du udskifter de 2 gange xxxTabel med dit eget tabelnavn...
SELECT ID, First(Data) As FirstOfData, Tidsstempel FROM xxxTabel AS T1 WHERE Tidsstempel=(SELECT Max(Tidsstempel) FROM xxxTabel WHERE ID=T1.ID) GROUP BY ID, Tidsstempel;
05. september 2001 - 10:18
#4
Bortset fra, at jeg bruger db2, som ikke kender funktionen First(), så var det præcis det der skulle til.