Uso do count como teste

12/04/2018

0

SQL

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

Responder

Post mais votado

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,

Lincon Silva

Lincon Silva
Responder

Mais Posts

16/04/2018

Demetrio Lopes

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!
Responder

16/04/2018

Demetrio Lopes

Nesse seu exemplo, funciona, mas se a pessoa tiver dois cargos, mostra duas linhas dizendo "tem 1 cargo(s)"

Muito obrigado
Responder

16/04/2018

Lincon Silva

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.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar