Uso do count como teste
Olá, tudo bem!?
Gostaria de saber se existe uma forma de usar o valor do count como teste.
EX: em uma tabela de funcionário, a funcionaria Maria tem dois cargos, Efetivo e comissionado. eu quero usar count para contar a quantidade de linhas e após vou fazer um case para determinar caso tenha 2 linhas me retorne tem dois cargos ou caso o count me retorne 1 linha, diga-me que tenha um cargo
Gostaria de saber se existe uma forma de usar o valor do count como teste.
EX: em uma tabela de funcionário, a funcionaria Maria tem dois cargos, Efetivo e comissionado. eu quero usar count para contar a quantidade de linhas e após vou fazer um case para determinar caso tenha 2 linhas me retorne tem dois cargos ou caso o count me retorne 1 linha, diga-me que tenha um cargo
Demetrio Lopes
Curtidas 0
Melhor post
Lincon Silva
13/04/2018
Bom dia Demétrio,
É isso que você quer fazer?
SELECT NOME_FUNCIONARIO, 'TEM '+CAST(COUNT(*) AS VARCHAR)+' CARGO(S)' FROM TABELA_FUNCIONARIO GROUP BY NOME_FUNCIONARIO
Abraços,
GOSTEI 1
Mais Respostas
Demetrio Lopes
12/04/2018
Bom dia, Desculpa, só agora pude responder.
Não entendi por que você usa o cast. Enfim, o problema é assim: Tem funcionários que tem dois cargos, e peguei o nome de um funcionário e usei o count para contar as linhas que aparece (ex: se o funcionario tiver apenas um cargo, vai mostrar apenas uma linha, etc..) e após, peguei o valor do count para determinar através de um case se o funcionário tem um ou dois cargos. mas quando o select chega no case, só mostra um valor.
MUITO OBRIGADO!
Não entendi por que você usa o cast. Enfim, o problema é assim: Tem funcionários que tem dois cargos, e peguei o nome de um funcionário e usei o count para contar as linhas que aparece (ex: se o funcionario tiver apenas um cargo, vai mostrar apenas uma linha, etc..) e após, peguei o valor do count para determinar através de um case se o funcionário tem um ou dois cargos. mas quando o select chega no case, só mostra um valor.
MUITO OBRIGADO!
GOSTEI 0
Demetrio Lopes
12/04/2018
Nesse seu exemplo, funciona, mas se a pessoa tiver dois cargos, mostra duas linhas dizendo "tem 1 cargo(s)"
Muito obrigado
Muito obrigado
GOSTEI 0
Lincon Silva
12/04/2018
Não mestre, não mostra dois. Você não deve ter agrupado.
Usei o Cast para poder unir com o texto, visto que o retorno do count é inteiro, por isso dei cast para varchar.
O seu case deve estar errado, deve ter um campo que tá fora da margem do group by, tens como postar aqui.
Até agora não vi a necessidade de case no select, pois a query acima atende.
Usei o Cast para poder unir com o texto, visto que o retorno do count é inteiro, por isso dei cast para varchar.
O seu case deve estar errado, deve ter um campo que tá fora da margem do group by, tens como postar aqui.
Até agora não vi a necessidade de case no select, pois a query acima atende.
GOSTEI 0