I en tabell så finns det svar på en fråga typ...
Sätt betyg på....bla bla
Svaren ligger som integer-värden på 1-5
Nu vill jag kunna visa svarsfördelningen på följande sätt.
Betyg 1: 76 st
Betyg 2: 11 st
Betyg 3: 109 st
Betyg 4: 22 st
Betyg 5: 45 st
Jag undrar om detta går att få fram med en SQL-fråga och hur den i så fall ska se ut. Som det är nu så får jag köra en fråga för varje värde...
"SELECT COUNT(*) AS nRS FROM Svar WHERE Varde=1"
"SELECT COUNT(*) AS nRS FROM Svar WHERE Varde=2"
osv. Men detta känns inte så smidigt.
Jag har också testat att köra UNION på dessa men kan inte få det att funka...
"SELECT COUNT(*) AS nRS1 FROM Svar WHERE Varde=1
UNION SELECT COUNT(*) AS nRS2 FROM Svar WHERE Varde=2 UNION ....osv." När jag försöker hämta nRS2 med ett recordset så finns inte värdet. Skumt!
Jag sitter och labbar på en MS-server och är tacksam för alla förslag.
Men jag förklara mig kanske inte så tydligt för jag vill även kunna få nRS=0 om alternativet saknar svar.
Om det t.ex finns följande i databasen
Betyg 1 - 8 st
Betyg 2 - 3 st
Betyg 3 - 7 st
Betyg 5 - 1 st
Då kommer jag att inte att kunna få fram
Betyg 1 - 8 st
Betyg 2 - 3 st
Betyg 3 - 7 st
Betyg 4 - 0 st <-
Betyg 5 - 1 st
Så egentligen skulle jag vilja kunna skriva villkor inne i count.....
SELECT
COUNT(select * from Svar where Varde=1) AS nRS1
, COUNT(select * from Svar where Varde=2) AS nRS2
, COUNT(select * from Svar where Varde=3) AS nRS3
o.s.v
men detta funkar inte. Så kom gärna med mer förslag tack.
/pg
SELECT COUNT(*) AS nRS1,
(SELECT COUNT(*) FROM Svar WHERE Varde = 2) AS nRS2,
(SELECT COUNT(*) FROM Svar WHERE Varde = 3) AS nRS3,
(SELECT COUNT(*) FROM Svar WHERE Varde = 4) AS nRS4,
(SELECT COUNT(*) FROM Svar WHERE Varde = 5) AS nRS5
FROM Svar WHERE Varde = 1