none
Retorno de consulta Divergente RRS feed

  • Pergunta

  • Estou realizando a seguinte consulta:

    select distinct ven.cod_pessoa, pes.nome_pessoa, ptel.numero,
    (Select top 1 vend.data from tab_venda vend where vend.cod_pessoa = ven.cod_pessoa order by vend.data desc) as Data_Venda
    from tab_venda ven 
    INNER join tab_pessoa pes on
    pes.cod_pessoa = ven.cod_pessoa
    INNER JOIN dbo.TAB_VENDEDORESGRUPO gvend ON
    gvend.COD_VENDEDOR = ven.cod_vendedor
    INNER JOIN dbo.TAB_TELEFONE ptel ON
    ptel.COD_PESSOA = pes.COD_PESSOA

    where (
    gvend.COD_GRUPO = 171)
    and tipo_venda <> 'x'
    and ven.DATA BETWEEN '20140501' AND '20140531'
    AND NUMERO <> ''

    order by Data_Venda ASC

    Só que o retorno não esta vindo somente as vendas no mês de maio, vem também algumas vendas do mês de junho e julho, mas somente algumas. Porque?

    quinta-feira, 31 de julho de 2014 13:27

Respostas

  • Bom dia,

    Laísa, acredito que o problema está na coluna Data_Venda, pois a subquery utilizada para obter a data não tem a condição para filtrar por periodo, nem as demais condições da query principal.

    Experimente fazer um teste dessa forma para ver se é obtido o resultado desejado:

    select
        ven.cod_pessoa, 
        pes.nome_pessoa, 
        ptel.numero,
        max(ven.data) as Data_Venda
    from tab_venda ven 
    INNER JOIN dbo.TAB_VENDEDORESGRUPO gvend 
        ON gvend.COD_VENDEDOR = ven.cod_vendedor
    INNER join tab_pessoa pes 
        ON pes.cod_pessoa = ven.cod_pessoa
    INNER JOIN dbo.TAB_TELEFONE ptel 
        ON ptel.COD_PESSOA = pes.COD_PESSOA
    where
        gvend.COD_GRUPO = 171 and 
        tipo_venda <> 'x' and 
        ven.DATA BETWEEN '20140501' AND '20140531' AND 
        NUMERO <> ''
    group by
        ven.cod_pessoa, 
        pes.nome_pessoa, 
        ptel.numero
    order by
        Data_Venda ASC

    Espero que ajude.


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

    quinta-feira, 31 de julho de 2014 13:44

Todas as Respostas

  • Bom dia,

    Laísa, acredito que o problema está na coluna Data_Venda, pois a subquery utilizada para obter a data não tem a condição para filtrar por periodo, nem as demais condições da query principal.

    Experimente fazer um teste dessa forma para ver se é obtido o resultado desejado:

    select
        ven.cod_pessoa, 
        pes.nome_pessoa, 
        ptel.numero,
        max(ven.data) as Data_Venda
    from tab_venda ven 
    INNER JOIN dbo.TAB_VENDEDORESGRUPO gvend 
        ON gvend.COD_VENDEDOR = ven.cod_vendedor
    INNER join tab_pessoa pes 
        ON pes.cod_pessoa = ven.cod_pessoa
    INNER JOIN dbo.TAB_TELEFONE ptel 
        ON ptel.COD_PESSOA = pes.COD_PESSOA
    where
        gvend.COD_GRUPO = 171 and 
        tipo_venda <> 'x' and 
        ven.DATA BETWEEN '20140501' AND '20140531' AND 
        NUMERO <> ''
    group by
        ven.cod_pessoa, 
        pes.nome_pessoa, 
        ptel.numero
    order by
        Data_Venda ASC

    Espero que ajude.


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

    quinta-feira, 31 de julho de 2014 13:44
  • Muito Obrigada! 

    Foi isso mesmo, deu super certo.

    Agradeço a atenção.

    quinta-feira, 31 de julho de 2014 14:56