Uso do count como teste

SQL

12/04/2018

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
Demetrio Lopes

Demetrio Lopes

Curtidas 0

Melhor post

Lincon Silva

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

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!
GOSTEI 0
Demetrio Lopes

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
GOSTEI 0
Lincon Silva

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.


GOSTEI 0
POSTAR