27. juni 2003 - 11:35Der er
5 kommentarer og 2 løsninger
Speciel SELECT udvælgelse
Jeg har en tabel med følgende felter: id (autonum) userid questionNum sequence answer
Mine brugere kan svare een eller flere gange på samme spørgsmål. Dvs at min tabel kan se således ud (jeg har her kun een bruger):
id userid questionNum sequence answer 1 'olf' 1 1 'Mit første svar' 2 'olf' 2 1 'asdf' 3 'olf' 1 2 'Mit andet svar'
Nu er udfordringen: Jeg vil gerne lave et udtræk, hvor jeg kan se answer for højeste sequence nr på hvert unikke questionNum for bruger 'olf'.
Dvs her rækkerne med id 2 og 3 (række med id 1 er skal ikke med, da række 3 har et højere sequence nr for samme questionNum).
Jeg ønsker at have eet recordset der indeholder alle de relevante rækker (jeg kan godt lave mange forespørgsler til db'en og få svarene hvis jeg kun trækker et spørgsmål ud af gangen, så den løsning er her uinteressant.)
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
På en Oracle database ville jeg gøre sådan her (virker forhåbentlig også med Access eller hvad det nu er du bruger):
select userid, questionNum, answer from <indsæt dit tabelnavn her> outer where sequence = (select max(sequence) from <indsæt dit tabelnavn her igen> inner where inner.questionNum = outer.questionNum and inner.userid = outer.userid)
select qa1.questionNum, qa1.answer from questionAnswer qa1 where qa1.userId = 'olf' and qa1.sequence in ( SELECT MAX(qa2.sequence) AS sequence FROM questionAnswer qa2 WHERE qa2.questionNum = qa1.questionNum )
Ups, manglede lige en sidste betingelse, nemlig at qa2.userId = 'olf'
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.