Har en tabell med en kolumn (svar8) vars innehåll kan se ut ungefär så här:
1 2 4 6
Jag vill hämta innehållet i hela tabellen där kolumnnamnet är svar8, splitta upp siffrorna i varje cell och sedan räkna hur många av varje siffra som finns TOTALT.
Alltså, hur många av alla celler som innehåller en etta t ex.
Så här tänker jag:
Hämta innehållet i första cellen
Deklarera fyra variabler, var1, var2, var3, var4 som int
Splitta upp innehållet i delar
Kolla om siffran 1 finns, plussa på var1 isf och spara värdet
Kolla om siffran 2 finns, plussa på var2 isf och spara värdet
Kolla om siffran 3 finns, plussa på var3 isf och spara värdet
Kolla om siffran 4 finns, plussa på var4 isf och spara värdet
Gå till nästa
Skriv ut innehållet i resp variabel
Några förslag på hur jag gör detta rent praktiskt?
Så här långt har jag kommit :r
'hämta hela svaret
sql = "SELECT svar8 FROM enkat"
Databas.Execute(sql)
set RecSet=Databas.Execute(sql)
dim var1
var1 = 0
dim var2
var2 = 0
dim var3
var3 = 0
dim var4
var4 = 0
'splitta innehållet för att få ut siffrorna
str = RecSet("svar8")
u = split(str, " ")
For i = 0 to ubound(u)
'räkna siffrorna?
if i Mod 1 = 0 then var1 = var1+1
if i Mod 2 = 0 then var2 = var2+1
if i Mod 3 = 0 then var3 = var3+1
if i Mod 4 = 0 then var4 = var4+1
next
Response.Write var1 & "<br>" & var2 & "<br>" & var3 & "<br>" & var4
RecSet.Close
set RecSet = nothing
Needless to say, så funkar det inget vidare. Den räknar inte alls ihop allting. Hilfe?
(Okej, det här var kanske inte det smartaste upplägget, men nu är det så och till nästa gång kan jag hitta på något bättre... :x)
sql = "SELECT count(svar8) as s1 FROM enkat WHERE svar8 like '%1 %'"
set RecSet=Databas.Execute(sql)
var1 = RecSet("s1")
RecSet.Close
sql = "SELECT count(svar8) as s2 FROM enkat WHERE svar8 like '%2 %'"
set RecSet=Databas.Execute(sql)
var2 = RecSet("s2")
RecSet.Close
Response.Write var1 & "<br>" & var2
Tänk på att det enbart fungerar med ensiffriga värden.
Ifall du hade byggt databasen bättre så hade du haft värdena i en egen tabell så att varje värde låg i ett eget fält. Då hade det varit hur enkelt som helst att räkna alla värden i en enda databasfråga.