none
Preciso de ajuda com esta query RRS feed

  • Pergunta

  • Bom dia!

    Prezados,

    Esta query está me retornando valor zerado. Mas quando executo separadamente, me retorna os varoles corretos.

    Nesta forma me retorna os valores corretos:

    select count(ve1.id_entidade) , (select count(vet2.id_entidade)
    from vw_rs_entidade vet2
    where vet2.pessoa_fisica_ou_juridica = 'Juridica'
    and vet2.tipo = 'cliente'
    and vet2.id_situacao in (0, 1))
    from vw_rs_entidade ve1
    where ve1.data_ultima_venda between '2012-10-01 00:00:00' and '2012-10-31 23:59:59'
    and ve1.pessoa_fisica_ou_juridica = 'Juridica'
    and ve1.tipo = 'cliente'
    and ve1.id_situacao in (0, 1)

    Resultado duas colunas com os valores: 2247 e 5151

    Nesta forma me retorna zerado:

    select count(ve1.id_entidade) / (select count(vet2.id_entidade)
    from vw_rs_entidade vet2
    where vet2.pessoa_fisica_ou_juridica = 'Juridica'
    and vet2.tipo = 'cliente'
    and vet2.id_situacao in (0, 1))
    from vw_rs_entidade ve1
    where ve1.data_ultima_venda between '2012-10-01 00:00:00' and '2012-10-31 23:59:59'
    and ve1.pessoa_fisica_ou_juridica = 'Juridica'
    and ve1.tipo = 'cliente'
    and ve1.id_situacao in (0, 1)

    Resultado: 0

    A diferença entre as duas é que na segunda tem uma barra de divisão.

    Agradeço e aguardo resposta.

    segunda-feira, 5 de novembro de 2012 13:46

Respostas

Todas as Respostas

  • Jackson, pode ser que tenha valores nulos, tente desta forma:

    select count(isnull(ve1.id_entidade,0)) / (select count(isnull(vet2.id_entidade,0))
     from vw_rs_entidade vet2
     where vet2.pessoa_fisica_ou_juridica = 'Juridica'
     and vet2.tipo = 'cliente'
     and vet2.id_situacao in (0, 1))
     from vw_rs_entidade ve1
     where ve1.data_ultima_venda between '2012-10-01 00:00:00' and '2012-10-31 23:59:59'
     and ve1.pessoa_fisica_ou_juridica = 'Juridica'
     and ve1.tipo = 'cliente'
     and ve1.id_situacao in (0, 1)


    Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    segunda-feira, 5 de novembro de 2012 14:09
  • Bom dia,

    Acho que está retornando zero porque o resultado da divisão entre dois valores do tipo int é outro int.

    Experimente desta forma:

    select count(ve1.id_entidade) * 1.0 / (select count(vet2.id_entidade)
    -- ...

    Espero que seja útil.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta JacksonSFerreira segunda-feira, 5 de novembro de 2012 15:20
    segunda-feira, 5 de novembro de 2012 14:15
  • Muito Obrigado!

    Já havia observado esta situação. Iria realizar uma conversão usuando comando, mas assim, já resolveu.

    segunda-feira, 5 de novembro de 2012 15:22