Tchello Postado Dezembro 17, 2014 Denunciar Share Postado Dezembro 17, 2014 Preciso de algo que funcione para isto: COUNT(DISTINCT coluna CASE WHEN coluna = '' THEN 1 END) AS vazias COUNT(DISTINCT coluna CASE WHEN coluna <> '' THEN 1 END) AS preenchidas Segue: SELECT idtec, contrato, nome, COUNT(DISTINCT contrato) AS contratos, COUNT(DISTINCT contrato CASE WHEN contrato = '' THEN 1 END) AS abertos, COUNT(DISTINCT contrato CASE WHEN contrato <> '' THEN 1 END) AS fechados FROM rota WHERE nome != 'nome' GROUP BY idtec ORDER BY nome Preciso distinguir cada técnico por número de contratos. Lembrando que para cada técnico podem ter várias linhas com o mesmo número de contrato Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Dezembro 18, 2014 Denunciar Share Postado Dezembro 18, 2014 Tenta assim:SELECT idtec, contrato, nome, COUNT(contrato) as contratos, SUM(IF(contrato = '',1,0) as abertos, SUM(IF(contrato <> '',1,0) as fechados FROM (SELECT DISTINCT idtec, contrato, nome FROM rota WHERE nome != 'nome') r GROUP BY idtec ORDER BY nome Link para o comentário Compartilhar em outros sites More sharing options...
0 Tchello Postado Dezembro 18, 2014 Autor Denunciar Share Postado Dezembro 18, 2014 Muito obrigado mais uma vez. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Tchello
Preciso de algo que funcione para isto:
COUNT(DISTINCT coluna CASE WHEN coluna = '' THEN 1 END) AS vazias
COUNT(DISTINCT coluna CASE WHEN coluna <> '' THEN 1 END) AS preenchidas
Segue:
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados