Avatar billede speder Nybegynder
26. marts 2001 - 12:15 Der er 4 kommentarer og
1 løsning

Komplekst SQL, eller?

Id    deltagerid    spg    svar
1    1        1    Over 30
2    1        2    Kvinde
3    2        1    Under 30
4    2        2    Mand
5    3        1    Under 30
6    3        2    Mand
7    4        1    Over 30
8    4        2    Kvinde
9    5        1    Over 30
10    5        2    Mand

Jeg har en simpel tabel som ovenstående. Den består af 4 kolonner:

1) ID: giver sig selv
2) deltagerid: hver deltager får tildelt en unik kode
3) spg: hvert spørgsmål har en unik id
4) svar: giver sig selv

Bemærk at hver deltager har to linier i ovenstående tabel, fordi de har svaret på to spørgsmål.

Jeg vil nu gerne generere nogle resultater ud fra ovenstående tabel. Der er let nok at lave resultater for de enkelte spørgsmål, men hvad nu hvis jeg gerne vil krydse to spørgsmål, f.eks.:

Hvor mange \"Kvinder\" er \"Over 30\".

Hvordan konstruerer jeg noget SQL, der kan lave en sådan krydstabulering?

Tusind tak på forhånd.

M.v.h.

Søren
26. marts 2001 - 12:25 #1
Hvad er der i vejen med:

TRANSFORM Count(Tabelnavn.ID) AS AntalOfID
SELECT Tabelnavn.Svar
FROM Tabelnavn
GROUP BY Tabelnavn.Svar
PIVOT Tabelnavn.Spg;

Jeg er ikke helt med på hvad det er, du vil?

/Thomas
Avatar billede erikjacobsen Ekspert
26. marts 2001 - 12:43 #2
select count(t1.id) as antal from tabelnavn as t1,tabelnavn as t2 where t1.deltagerid=t2.deltagerid and t1.svar=\"Over 30\" and t2.svar=\"kvinde\"

(uprøvet)
Avatar billede proaccess Nybegynder
26. marts 2001 - 13:29 #3
SELECT Count(S1.DeltagerID) AS Antal FROM Spørgsmål AS S1 INNER JOIN Spørgsmål AS S2 ON S1.DeltagerID = S2.DeltagerID WHERE S1.Svar=\"Over 30\" AND S2.Svar=\"Kvinde\";

(Afprøvet)
Avatar billede speder Nybegynder
26. marts 2001 - 16:10 #4
tak for hjælpen. erik var først med det rigtige svar og får points.
Avatar billede proaccess Nybegynder
26. marts 2001 - 16:15 #5
Det er bare 10-4 !!!

Godt vi ramte det rigtigt...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester