Usuário com melhor resposta
Select count Group by

Pergunta
-
Bom dia,
alguém pode auxiliar no select abaixo?
A tabela Area B não tem chave de relacionamento como tabelas Dia A e Endereco B.
Eu preciso que retorne um indicador por localidade selecionada.
DECLARE @localidade varchar(512) SET @localidade =localidade DECLARE @cod_Localidade as int SET @cod_Localidade =cod_Localidade declare @somaNum as INT; set @somaNum = (SELECT B.cod_localidade, sum(B.Num_Im) from Area B, Localidade A Where B.cod_localidade=A.id and B.cod_localidade=@cod_Localidade group by B.cod_localidade); Select A.cic as Etapa, B.localidade AS LOCALIDADE, count(A.confirmado) as NUMERO, cast((count(A.confirmado) * 100.0 / @somaNum) as numeric(10,3)) as INDICADOR_LOCALIDADE From Dia A, Endereco B Where B.id=A.cod_Endereco and confirmado=1 and B.localidade=@localidade group by B.localidade, A.cic order by A.cic;
Respostas
-
Não sei se vai ser obtido o resultado esperado mas experimente fazer uns testes alterando a linha abaixo:
set @somaNum = (SELECT sum(B.Num_Im) from Area B inner join Localidade A on B.cod_localidade = A.id where B.cod_localidade = @cod_Localidade);
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 14 de agosto de 2018 12:38
-
Tem mais algum código nesse script?
Acho que deixando só o Sum depois do Select naquele trecho não deveria ocorrer esse erro, e não é mesmo o caso de acrescentar o Group By.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Wilson Boris segunda-feira, 13 de agosto de 2018 16:11
Todas as Respostas
-
Bom dia,
Não entendi muito bem a sua questão... esse script que você postou está funcionando?
Não está retornando o resultado esperado? O que está faltando?
Assinatura: http://www.imoveisemexposicao.com.br
-
Não está funcionando.
Eu espero que informando o cod_Localidade seja calculado o denominador e com este após solicitado a localidade seja calculado o indicador desta conforme condição where.
Retorna com a mensagem abaixo:
Mensagem 116, Nível 16, Estado 1, Linha 9
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS. -
Não sei se vai ser obtido o resultado esperado mas experimente fazer uns testes alterando a linha abaixo:
set @somaNum = (SELECT sum(B.Num_Im) from Area B inner join Localidade A on B.cod_localidade = A.id where B.cod_localidade = @cod_Localidade);
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 14 de agosto de 2018 12:38
-
-
Tem mais algum código nesse script?
Acho que deixando só o Sum depois do Select naquele trecho não deveria ocorrer esse erro, e não é mesmo o caso de acrescentar o Group By.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Wilson Boris segunda-feira, 13 de agosto de 2018 16:11
-
-
-
Bom dia,
alguém pode auxiliar no select abaixo?
A tabela Area B não tem chave de relacionamento como tabelas Dia A e Endereco B.
Eu preciso que retorne um indicador por localidade selecionada.
DECLARE @localidade varchar(512) SET @localidade =localidade DECLARE @cod_Localidade as int SET @cod_Localidade =cod_Localidade declare @somaNum as INT; set @somaNum = (SELECT B.cod_localidade, sum(B.Num_Im) from Area B, Localidade A Where B.cod_localidade=A.id and B.cod_localidade=@cod_Localidade group by B.cod_localidade); Select A.cic as Etapa, B.localidade AS LOCALIDADE, count(A.confirmado) as NUMERO, cast((count(A.confirmado) * 100.0 / @somaNum) as numeric(10,3)) as INDICADOR_LOCALIDADE From Dia A, Endereco B Where B.id=A.cod_Endereco and confirmado=1 and B.localidade=@localidade group by B.localidade, A.cic order by A.cic;
Wilson,
Você esta querendo atribui para a variável @SomaNum o resultado do Select que esta trazendo duas colunas, isso não é possível, ou seja, especifique somente uma única coluna neste Select que será utilizado para armazenar o respectivo valor na variável.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-