Avatar billede claus_w Nybegynder
02. februar 2002 - 23:03 Der er 11 kommentarer

Analyse af resultater fra undersøgelse

I forbindelse med en medieanalyse i faget Kommunikation og Multimedia, har jeg fortaget en spørgeskemaundersøgelse for blandt andet at få indblik i unges holdning til diverse fremtidsperspektiver.

Alle deltagerne har udfyldt alder og køn, og i de forskellige spørgsmål fortalt om de var "Helt enig", "Enig", "Hverken eller", "Uenig" eller "Helt Uenig" i en given påstand.

Databasen indeholder altså feltet alder(int), køn(1/2) og Påstand(1,2,3,4 eller 5).

Deltagerne opdeles i følgende grupper:

  1: Drenge på 13-15 år
  2: Piger på 13-15 år
  3: Drenge på 16-18 år
  4: Piger på 16-18 år
  5: Drenge på 19-21 år
  6: Piger på 19-21 år

Det jeg ønsker at undersøge er hvor mange der har svaret "Helt enig", "Enig", "Hverken eller", "Uenig" eller "Helt Uenig" i de forskellige grupper.

Resultatet skal gerne se nogenlunde således ud: http://www.grz.dk/analyse.jpg

Jeg har lavet en sql-forspørgsel som sammentæller hvor mange drenge mellem 13 og 15 som har svaret "Helt Enig":

select count(*) from data where [påstand]=1 AND [køn]=1 AND [alder] >= 13 AND [alder] <= 15;

For at få et resultat med alle 5 forskellige svarmuligheder har jeg lavet dette SQL i 5 under-forspørgsler.

Men hvordan gør jeg når ønsker resultater for alle de 6 grupper af deltagere ?
Avatar billede cpfrande Nybegynder
02. februar 2002 - 23:28 #1
Hej !

Hvis jeg forstår dit spørgsmål korrekt skal du bare i din MySQL kode vist overover fjerne ALT det der har med alder at gøre, så vil den jo tage i alle aldre grupper ( De 6 grupper var vel aldre...? )
og så udskrive det sådant :D

<-| Frande |->
Avatar billede claus_w Nybegynder
02. februar 2002 - 23:34 #2
Nej, det forstod du ikke korrekt.
Avatar billede cpfrande Nybegynder
03. februar 2002 - 00:32 #3
Gider du så forklare det sådan at det forstås korrekt fra min side???
Hvad er det du ønsker med de 6 grupper?
Hvilke resultater ønsker du osv. ?
Avatar billede proaccess Nybegynder
03. februar 2002 - 08:53 #4
Du skal altså gruppere alder i de seks kategorier...

Prøv denne... Den er lang og modbydelig, men den burde løse dit problem, du skal dog overveje, hvad der sker hvis det er en person under 13 eller over 21 !!!

SELECT Choose([Påstand],'Helt enig','Enig','Hverken eller','Uenig','Helt uenig') AS Påstande, Sum(IIf([Alder] Between 13 And 15 And [køn]=1,1,0)) AS [13-15 M], Sum(IIf([Alder] Between 13 And 15 And [køn]=2,1,0)) AS [13-15 K], Sum(IIf([Alder] Between 16 And 18 And [køn]=1,1,0)) AS [16-18 M], Sum(IIf([Alder] Between 16 And 18 And [køn]=2,1,0)) AS [16-18 K], Sum(IIf([Alder] Between 19 And 21 And [køn]=1,1,0)) AS [19-21 M], Sum(IIf([Alder] Between 19 And 21 And [køn]=2,1,0)) AS [19-21 K] FROM Påstande GROUP BY Choose([Påstand],'Helt enig','Enig','Hverken eller','Uenig','Helt uenig');
Avatar billede proaccess Nybegynder
03. februar 2002 - 09:01 #5
Ved at lave en aldersgruppe-funktion i et modul, kan du også bruge denne...

TRANSFORM Sum(1) SELECT Choose([Påstand],'Helt enig','Enig','Hverken eller','Uenig','Helt uenig') AS Påstande FROM Påstande GROUP BY Choose([Påstand],'Helt enig','Enig','Hverken eller','Uenig','Helt uenig') PIVOT aldersgruppe([Alder]) & Choose([Køn],' M',' K');



Din funktion kunne for eksempel se således ud:

Public Function aldersgruppe(alder As Integer) As String
  aldersgruppe = "00-13"
  If alder > 12 Then aldersgruppe = "13-15"
  If alder > 15 Then aldersgruppe = "16-18"
  If alder > 18 Then aldersgruppe = "19-21"
  If alder > 21 Then aldersgruppe = "21-99"
End Function
Avatar billede cpfrande Nybegynder
03. februar 2002 - 09:03 #6
skal der ikke ; i slutningen af alle dine linjer ???

<-| Frande |->
Avatar billede proaccess Nybegynder
03. februar 2002 - 09:08 #7
>cpfrande: ikke hvis vi snakker om VBA... Der er ; i slutningen af SQL-strengene, men i funktionen skal der ikke være nogen...
Avatar billede claus_w Nybegynder
03. februar 2002 - 11:56 #8
Jeg tror ikke jeg har fået formuleret problemet ordenligt.

Jeg har lagt databasen op på http://www.grz.dk/medieanalyse_v2000.mdb (ca. 1 mb)

I tabellen "data" er de forskellige felter beskrevet. Her er de felter som mit spørgsmål omhandler:
  1_sex - Kan være 1 for mand og 2 for kvinde
  2_alder - Alderen
  9_info - En påstand hvor 1 er for "Helt enig", 2 for "Enig", 3 for "Hverken eller", 4 for "Uenig" og 5 for "Helt uenig".

Det jeg ønsker at trække ud af denne tabel har jeg opstilt et eksempel på her: http://www.grz.dk/analyse.jpg. Det jeg ønsker er altså at vide hvor mange personer der i hver af de forskellige grupper (de 6 grupper opdelt i køn og alder) der er "Helt enige" i påstanden, hvor mange der i hver af de forskellige grupper er "Enige" i påstanden, hvor mange der i hver af de forskellige grupper er "Hverken eller" enige med påstanden. osv. osv. Ved hjælp af denne data er planen så at lave et søjlediagram som det på eksemplet.

Det er ikke svært at lave dette udtræk ved hjælp af 5 forskellige sql-forespørgsler, men det er meget besværligt. Derfor spørger jeg om hvorledes jeg kan lave det i én query således at resultatet bliver som på http://www.grz.dk/analyse.jpg
Avatar billede claus_w Nybegynder
03. februar 2002 - 12:02 #9
proaccess: Deltagerne er kun opdelt i 6 forskellige grupper:

  1: Drenge på 13-15 år
  2: Piger på 13-15 år
  3: Drenge på 16-18 år
  4: Piger på 16-18 år
  5: Drenge på 19-21 år
  6: Piger på 19-21 år

Der er altså ingen under 13 år og ingen over 21 år.
Avatar billede proaccess Nybegynder
03. februar 2002 - 18:45 #10
Så skulle du ikke have nogen problemer med at omdøbe felterne i min 1. forespørgsel til dine egne... (jeg havde ellers brugt dem fra dit oprindelige spørgsmål)

Brug evt. cut'n'paste
Avatar billede proaccess Nybegynder
13. marts 2002 - 07:53 #11
Kom du videre med dette, og kan vi få spørgsmålet lukket?
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