none
Select count Group by RRS feed

  • 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;


    segunda-feira, 13 de agosto de 2018 13:41

Respostas

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

    segunda-feira, 13 de agosto de 2018 14:04
  • 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.

    segunda-feira, 13 de agosto de 2018 14:21
  • 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

    segunda-feira, 13 de agosto de 2018 14:39
  • Mensagem 116, Nível 16, Estado 1, Linha 8
    Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

    Mesmo acrescentando Group by não rodou.

    segunda-feira, 13 de agosto de 2018 15:02
  • 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
    segunda-feira, 13 de agosto de 2018 15:12
  • Mensagem 208, Nível 16, Estado 1, Linha 1
    Invalid object name 'Area'.
    segunda-feira, 13 de agosto de 2018 16:08
  • Ops, rodou. Blz

    Muito obrigado.

    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]

    terça-feira, 14 de agosto de 2018 12:40
  • Verdade professor, obrigado.
    quinta-feira, 16 de agosto de 2018 23:18