[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