Sql Muito estranho...Union ?????

04/08/2004

0

PESSOAL ,

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

Mmbarros

Responder

Posts

05/08/2004

Paulo_amorim

Olá

Imaigno que na segunda query, onde vc coloca
SELECT [b:c173104089]CODSETOR[/b:c173104089]

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é+


Responder

05/08/2004

Emiliano

Caro amigo,


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+


Responder

05/08/2004

Emerson Nascimento

ou ainda:

[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


Responder

05/08/2004

Mmbarros

Grande Emerson.en

Fico grato pela sua ajuda, ficou perfeito!
Mais uma vez muito obrigado!


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar