Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

acdestefani

[Resolvido] Contagem de registros

Recommended Posts

Olá!

Usei o seguinte comando para obter a quantidade de registros, da tabela encaminhamentos (e),separados por mês:

SELECT 
IFNULL(e.siglasecretaria,'TOTAL SOLICITAÇÃO') AS secretaria,
COUNT(CASE WHEN MONTH( s.data ) = 1 THEN e.siglasecretaria ELSE null END  ) as 'jansol',
COUNT(CASE WHEN MONTH( s.data ) = 2 THEN e.siglasecretaria ELSE null END  ) as 'fevsol',
COUNT(CASE WHEN MONTH( s.data ) = 3 THEN e.siglasecretaria ELSE null END  ) as 'marsol',
COUNT(CASE WHEN MONTH( s.data ) = 4 THEN e.siglasecretaria ELSE null END  ) as 'abrsol',
COUNT(CASE WHEN MONTH( s.data ) = 5 THEN e.siglasecretaria ELSE null END  ) as 'maisol',
COUNT(CASE WHEN MONTH( s.data ) = 6 THEN e.siglasecretaria ELSE null END  ) as 'junsol',
COUNT(CASE WHEN MONTH( s.data ) = 7 THEN e.siglasecretaria ELSE null END  ) as 'julsol',
COUNT(CASE WHEN MONTH( s.data ) = 8 THEN e.siglasecretaria ELSE null END  ) as 'agosol',
COUNT(CASE WHEN MONTH( s.data ) = 9 THEN e.siglasecretaria ELSE null END  ) as 'setsol',
COUNT(CASE WHEN MONTH( s.data ) = 10 THEN e.siglasecretaria ELSE null END  ) as 'outsol',
COUNT(CASE WHEN MONTH( s.data ) = 11 THEN e.siglasecretaria ELSE null END  ) as 'novsol',
COUNT(CASE WHEN MONTH( s.data ) = 12 THEN e.siglasecretaria ELSE null END  ) as 'dezsol'
FROM
solicitacao AS s
JOIN 
encaminhamento e ON e.codsolicitacao = s.codsolicitacao
WHERE
year( s.data ) = 2012
AND 
tipo = 'Solicitação'
GROUP BY
e.siglasecretaria 
WITH ROLLUP

 

O problema é que pode haver mais de um registro com o mesmo codsolicitacao e nesse caso gostaria que fosse somado apenas um.

 

Alguém tem idéia de como posso fazer isso?

 

Desde já agradeço a ajuda de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente ...

 

... COUNT(distinct CASE WHEN MONTH( s.data ) = 1 THEN e.siglasecretaria ELSE null END  ) as 'jansol', ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda Motta!

 

Na verdade, eu precisava fazer a distinção através do campo codsolicitacao. Tentei assim:

 

COUNT(distinct e.codsolicitacao CASE WHEN MONTH( s.data ) = 1 THEN e.siglasecretaria ELSE null END  ) as 'jansol',

 

Mas deu erro. Acho que é erro de sintaxe.

 

Pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites
COUNT(distinct  (CASE WHEN MONTH( s.data ) = 1 THEN e.codsolicitacao ELSE null END)  ) as 'jansol',

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.