Avatar billede zicko Nybegynder
01. marts 2006 - 10:58 Der er 10 kommentarer og
1 løsning

Sammenstille svar fra database.

Hej! Jeg er kommet lidt i problemer, har lavet en database til at indsamle svar på et spørgeskema, og nu skal jeg have sammenstillet resultaterne for at kunne lave statistikker.

Jeg har bare íngen anelse om hvordan man nemmest gør det?

Har lidt forstand på ASP, så måske man kunne gøre det derigennem?

Der er lidt over 20 spørgsmål, og jeg kunne godt tænke mig f.eks. at finde ud af hvor mange mellem 20 og 30 år, der har svaret ja til spørgsmål 13 og 17, og hvor mange mænd, der har valgt svarmulighed 4 på spørgsmål 11.

Håber det giver et indblik, ellers så bare spørg :)

På forhånd tusind tak for enhver hjælp, den er højt værdsat!
Avatar billede kalp Novice
01. marts 2006 - 11:02 #1
SQL kald:)

f.eks hvis du har et spørgsmål som er du mand kvinde.. og det gemmes i tabellen "kon"

SELECT COUNT(kon) as antal where kon = 'Mand';

så har du antallet af mænd..

count kan egentlig bruges til det meste..
Avatar billede notesguru Nybegynder
01. marts 2006 - 11:05 #2
Normalt vil man benytte sql, det er et sprog der benyttes til at lave forespørgsler på en database.
Tutorial her
http://www.w3schools.com/sql/default.asp

Hvis du har brugt access er der måske nogle andre muligheder, men jeg kender ikke access.
Avatar billede jensen363 Forsker
01. marts 2006 - 11:14 #3
SQL-forespørgsler er den nemmeste metode, og helt oplagte metode i dette tilfælde. Hvis du ikke har den helt store erfaring med det, vil jeg gerne hjælpe, hvis du mailer datasættet til mig ( zipped )
Avatar billede jensen363 Forsker
01. marts 2006 - 14:19 #4
Eksempel på et SQL-udtræk kunne være :

Ad 1 )
SELECT Count(tblSvar.BesvarelsesID) AS Antal
FROM tblSvar
HAVING (((tblSvar.Alder) Between 20 And 30) AND ((tblSvar.[Spg 13])="Ja") AND ((tblSvar.[Spg 17])="Ja"));

Ad 2)
SELECT Count(tblSvar.BesvarelsesID) AS Antal
FROM tblSvar
HAVING (((tblSvar.Køn)="M") AND ((tblSvar.[Spg 11])="4"));
Avatar billede zicko Nybegynder
01. marts 2006 - 16:21 #5
Tak for svarene, det jeg egentlig er ude efter er bare en metode/form hvor man kan vælge de forskellige svarmuligheder til de forskellige spørgsmål, og så via SQL tælle op hvor mange besvarelser der har svaret sådan. Beklager hvis jeg ikke har gjort det tydeligt nok i spørgsmålet. Jeg har nogenlunde styr på SQL, bare ikke så meget på Count funktionen.
Avatar billede jensen363 Forsker
01. marts 2006 - 16:30 #6
Eksempel :

HAVING (((tblSvar.Køn)="M") AND ((tblSvar.[Spg 11])="4"))

er metoden/formen til at udtrække de data du ønsker

HAVING (((tblSvar.Køn)= [Vælg køn : ]) AND ((tblSvar.[Spg 11])=[Vælg svar : ]))

er den tilsvarende, hvor du arbejder med variabler som du/brugeren angiver før antal returneres
Avatar billede zicko Nybegynder
01. marts 2006 - 16:53 #7
aah :) læste lige jensens svar igen.. måske man kunne sende form-værdierne videre til det der SQL kald, og så tælle dem på den måde?
Avatar billede jensen363 Forsker
01. marts 2006 - 16:55 #8
Netop :o) ... formfærdier taget fra dropdown/kombinationsbokse kan benyttes som filterværdier i din SQL-forespørgsler
Avatar billede zicko Nybegynder
05. marts 2006 - 18:58 #9
Jensen > har nu langt om længe fået det afprøvet, og får denne fejl:


Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 3.
/rikkes/count.asp, line 973


Linie 971-973 ser ud som følger:

SQL= "SELECT Count(1) AS Antal FROM tblResults HAVING (((tblResults.fldQ6) Between 20 And 30) AND ((tblResults.fldQ4)=""Ja"") AND ((tblSvar.fldQ9)=""2""));"

set rs = objConn.execute(SQL)


Kan du se hvad problemet evt. kan være ?
Avatar billede zicko Nybegynder
05. marts 2006 - 22:15 #10
WOOHOO!!! Det virker! :D YES!! Tusind tak for hjælpen Jensen! Du får lige pointene..

Hvis det kan hjælpe andre er her hvordan det kom til at virke:


SQL = "SELECT Count(1) AS Antal FROM tblResults HAVING ("
SQL = SQL & "((tblResults.fldQ1) Between " & Request.Form("frmQ1") & " And " & Request.Form("frmQ1_2") & ") "
SQL = SQL & "AND ((tblResults.fldQ6) Between " & Request.Form("frmQ6") & " And " & Request.Form("frmQ6_2") & ") "
SQL = SQL & "AND ((tblResults.fldQ7) Between " & Request.Form("frmQ7") & " And " & Request.Form("frmQ7_2") & ") "
SQL = SQL & "AND ((tblResults.fldQ8) Between " & Request.Form("frmQ8") & " And " & Request.Form("frmQ8_2") & ") "

        IF request.form("Q2") <> "0" THEN
            SQL = SQL & "AND ((tblResults.fldQ2)='" & request.form("frmQ2") & "') "
        END IF
       
        IF request.form("Q4") <> "0" THEN
            SQL = SQL & "AND ((tblResults.fldQ4)='" & request.form("frmQ4") & "') "
        END IF   
       
SQL = SQL & ");"


Altså... hvis værdien af et spørgsmål er nul, tages dette spørgsmål ikke med i SQL forespørgslen... Genialt :D
Avatar billede zicko Nybegynder
05. marts 2006 - 22:17 #11
nu skal jeg selvfølgelig bare lige have lavet det til de sidste 17 spørgsmål ;)
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