Avatar billede quarkb Nybegynder
11. april 2016 - 19:47 Der er 7 kommentarer og
2 løsninger

Record count

Hvordan får jeg record Count på hvor mange der har svaret Ja/Nej?

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Application( "SQLPath" )
   
sql = "SELECT * FROM [APVLines]"
   
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql, conn, 3,3
   
if rs.bof then
    response.write "Ingen data"   
else
   
rs.movefirst
do while not rs.eof
   
   
response.write rs.Fields("Answer") & "<br>"

   
rs.movenext
loop

rs.close
set rs = nothing
conn.close
set conn = nothing
end if
%>

rs.Fields("Answer") har to mulige indhold enten Ja eller Nej, hvordan får jeg et Count på hvor mange der har svaret Ja og hvor mange har svaret Nej?
Avatar billede arne_v Ekspert
11. april 2016 - 19:53 #1
sql = "SELECT answer,COUNT(*) AS n FROM APVLines GROUP BY answer"
Avatar billede quarkb Nybegynder
11. april 2016 - 20:08 #2
Jeg har måske ikke fået forklaret det helt godt nok.
Tabel APVLines har flere spørgsmål som kan besvares med Ja/Nej og jeg vil gerne kunne få et antal på hver spørgsmål uden at skulle lave en sql= på hvert spørgsmål.
Så jeg vil gerne hvis det er muligt at lave et Count på

rs.movefirst
do while not rs.eof
   
if rs.Fields("QuestNr") = "question1" then
  if rs.Fields("Answer") = "Ja" then
  response.write count på antal Ja
  end if
end if
   
rs.movenext
loop
Avatar billede arne_v Ekspert
11. april 2016 - 20:29 #3
Der er forskellige muligheder.
Avatar billede arne_v Ekspert
11. april 2016 - 20:30 #4
SELECT 'Spm. 1' AS spm,spm1,COUNT(*) AS n FROM tabel GROUP BY spm1
UNION
SELECT 'Spm. 2' AS spm,spm2,COUNT(*) AS n FROM tabel GROUP BY spm2
UNION
SELECT 'Spm. 3' AS spm,spm3,COUNT(*) AS n FROM tabel GROUP BY spm3
Avatar billede arne_v Ekspert
11. april 2016 - 20:32 #5
SELECT
SUM(IIF(spm1='Ja',1,0)) AS spm1ja,
SUM(IIF(spm1='Nej',1,0)) AS spm1nej,
SUM(IIF(spm2='Ja',1,0)) AS spm2ja,
SUM(IIF(spm2='Nej',1,0)) AS spm2nej,
SUM(IIF(spm3='Ja',1,0)) AS spm3ja,
SUM(IIF(spm4='Nej',1,0)) AS spm3nej,
FROM tabel
Avatar billede quarkb Nybegynder
11. april 2016 - 20:34 #6
Har fundet denne løsning som også er brugbar i mit eksempel:

if rs.Fields("QuestNr") = "2" then
  if rs.Fields("Answer") = "Ja" then
    iCntQ2Ja = iCntQ2Ja + 1
  end if
  if rs.Fields("Answer") = "Nej" then
  iCntQ2Nej = iCntQ2Nej + 1
  end if
end if

Response.write iCntQ2Nej & iCntQ2Ja

Muligvis lidt mere kode end dit forslag, hvordan får jeg printet Count fra dit eksempel?
Avatar billede quarkb Nybegynder
23. april 2016 - 21:52 #7
Tak for dit svar, laver du et svar så får du point.
Avatar billede arne_v Ekspert
24. april 2016 - 03:06 #8
svar
Avatar billede quarkb Nybegynder
26. april 2016 - 08:25 #9
Svar
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

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