[firebase-br] COUNT
Jose Luiz de Medeiros
joseluiz em medeirosinfor.com
Ter Jul 28 22:39:55 -03 2009
Colegas, tenho um cadastro onde os alunos votaram sobre alguns cursos
ministrados, preciso então de imprimir o resultado.
Tabela de gabarito tenho:
ID_CURSO
ID_PERIODO
R1
R2
R3
R4
Os campos R1,R2,R3,R4 são os campos tipo char(1) que o aluno responde sobre
determinada pergunta: R(ruim)B(bom)M(médio).
Preciso num SQL agrupar essas resposta me dando o somatório de cada
resposta.
Tipo assim:
CURSO 1 PERIODO 5 BOM MEDIO RUIM
PERGUNTA1(R1) 100 30 40
PERGUNTA2(R2) 30 50 48
PERGUNTA3(R3) 32 50 29
PERGUNTA4(R4) 49 10 28
Nesse exemplo funciona:
SELECT G.ID_CURSO,G.ID_PERIODO,COUNT(R1)as BOM
FROM gabarito G
WHERE
G.R1 = 'B'
GROUP by
G.ID_CURSO,G.ID_PERIODO
Funciona beleza
Mas como são muitas respostas diferentes nesse outro exemplo o resultado não
bate.
SELECT G.ID_CURSO,G.ID_PERIODO,
(SELECT COUNT(R1)FROM GABARITO WHERE R1 = 'B')AS BOM,
(SELECT COUNT(R1)FROM GABARITO WHERE R1 = 'R')AS RUIM,
(SELECT COUNT(R1)FROM GABARITO WHERE R1 = 'M')AS MEDIO,
(SELECT COUNT(R2)FROM GABARITO WHERE R2 = 'B')AS BOM,
(SELECT COUNT(R2)FROM GABARITO WHERE R2 = 'R')AS RUIM,
(SELECT COUNT(R2)FROM GABARITO WHERE R2 = 'M')AS MEDIO
FROM GABARITO G
GROUP by
G.ID_CURSO,G.ID_PERIODO
Além de repetir o valor,a conta não bate.
O que estou fazendo de errado?
Grato:
Jose Luiz
Mais detalhes sobre a lista de discussão lista