Sql Muito estranho...Union ?????
04/08/2004
0
Boa Tarde!
Estou tentando contar quantos funcionários estão suspensos e quantos não estão suspensos. E para isso executo um Sql utilizando o Union All, porém ele só me retorna os valores do 1º Sql. alguém poderia me ajudar.
Agradeço desde já.
Obs: A consulta é em uma mesma tabela
Segue abaixo a estrutura da tabela:
FUNCIONARIO
CPF,
SETOR,
NOME,
DATANASCIMENTO,
SUSPENSO
Segue abeixo o Sql utilizado:
SELECT SETOR, COUNT(*) as SUSPENSO FROM FUNCIONARIO
WHERE SUSPENSAO = ´S´
group by SETOR
union ALL
SELECT CODSETOR, COUNT(*) as NAOSUSPENSO FROM FUNCIONARIO
WHERE SUSPENSAO = ´N´
group by CODSETOR
Mmbarros
Posts
05/08/2004
Paulo_amorim
Imaigno que na segunda query, onde vc coloca
você tenha querido dizer [b:c173104089]SETOR[/b:c173104089], não? Talvez tenha isso
Fora isso, tente colocar um campo IND_STATUS, que preenche ´S´ na primeira query e ´N´ na segunda... talvez ajude (se bem q tem Union ALL ne...seila)
Espero que ajude
Até+
05/08/2004
Emiliano
Se vc quer saber a quantidade de suspenso e não suspensos por setor é so executar o seguinte SQL:
SELECT SETOR, SUSPENSO, Count(SUSPENSO) AS QTD_POR_SETOR
FROM FUNCIONARIO
GROUP BY SETOR, SUSPENSO;
Agora, se vc quiser saber a quantidade total de suspesos e não suspensos é so executar o seguinte:
SELECT SUSPENSO, COUNT(SUSPENSO) AS QTD_SUSPENSOS_NSUSPENSOS
FROM FUNCIONARIO
GROUP BY SUSPENSO;
UNION ALL é utilizado para união de duas tabelas.
Emiliano,
t+
05/08/2004
Emerson Nascimento
[b:4210e1e295]todos os suspensos e não-suspensos por setor:[/b:4210e1e295]
SELECT Func.Setor, count(setor) Total,
    (select count(setor)
      from Funcionario where Setor=Func.Setor and Suspenso=´N´) Ativos,
    (select count(setor)
      from Funcionario where Setor=Func.Setor and Suspenso=´S´) Suspensos
From Funcionario Func
Group by Func.Setor
Retorno:
Setor   Total   Ativos   Suspensos
X         6         6           0
Y         19       14         5
Z         8         7           1
[b:4210e1e295]todos os funcionários suspensos e não suspensos:[/b:4210e1e295]
SELECT count(setor) Total,
    (select count(setor) from Funcionario where Suspenso=´N´) Ativos,
    (select count(setor) from Funcionario where Suspenso=´S´) Suspensos
From Funcionario Func
Retorno:
Total   Ativos   Suspensos
33       27         6
05/08/2004
Mmbarros
Fico grato pela sua ajuda, ficou perfeito!
Mais uma vez muito obrigado!
Clique aqui para fazer login e interagir na Comunidade :)