08. februar 2021 - 14:55Der er
4 kommentarer og 1 løsning
Udfordringer med valg af Nyeste post i et Cross Apply
Hej,
Jeg har lidt udfordringer med at trække en ønsket liste.... og har/havde måske en forventning om at TOP kunne hente den "nyeste" række pr. bruger.
select d.PkUserNumber, LastName, ds.PkDebTransaction, ds.UserBalance2, ds.starttime from Users as d cross apply (select top 1 PkDebTransaction,starttime, UserBalance2 from DEBTransactions where d.PkUserNumber = FkUser and type = 12) as ds
Jeg fået et resultat med en linje pr. bruger, men hvor jeg havde forventet at få den nyeste post med typen 12, så får jeg i stedet den ældste post.
PkDebTransaction er min primær nøgle og jeg "synes" den skulle tage den post med den højeste id pr. bruger.
TOP tager den første af de records du select'er, men de er ikke sorteret. Sikkert derfor du får den ældste. Du må mangle en ORDER BY for at få det du vil.
Jeg har forsøgt mig med en substring på starttime, da jeg kun ønsker de første 4 cifre, men den kommer med en fejlmelding ala....
select d.PkUserNumber, LastName, ds.PkDebTransaction, ds.UserBalance2, substring(ds.starttime,0,2), ds.type from Users as d cross apply (select top 1 PkDebTransaction, substring(starttime,0,2), UserBalance2, Type from DEBTransactions where d.PkUserNumber = FkUser and type IN (3) order by EndTime desc) as ds
Msg 8155, Level 16, State 2, Line 52 No column name was specified for column 2 of 'ds'. Msg 207, Level 16, State 1, Line 49 Invalid column name 'starttime'.
Løste det med at kalde det ekstra felt, og lave substrings i den
select d.PkUserNumber, LastName, ds.TID, ds.PkDebTransaction, ds.UserBalance2, ds.starttime, ds.type from Users as d cross apply (select top 1 PkDebTransaction, starttime, substring(starttime,8,2) + '/' + substring(starttime,5,2) + '-' + substring(starttime,1,4) as TID, UserBalance2, Type from DEBTransactions where d.PkUserNumber = FkUser and type IN (3) order by EndTime desc) as ds
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.