none
Auxilio em query RRS feed

  • Pergunta

  • Boa tarde a todos, estou precisando de uma auxilio na query abaixo, o que eu preciso é listar os últimos 5 pedidos que o cliente comprou.

    SELECT

    p.cd_clien,

    p.nu_ped,

    i.cd_prod,

    i.qtde_unid_ped,

    i.vl_unit_ped,

    p.dt_ped,

    dt_ult_compra

    from ped_vda p

    join it_pedv i

    on i.nu_ped=p.nu_ped

    JOIN cliente c

    ON c.cd_clien=p.cd_clien

    where c.dt_ult_compra < =(convert(date,GETDATE(),102))

    AND c.cd_clien=9305

    Veja o resultado,

    nu_ped

    cd_prod

    qtde_unid_ped

    vl_unit_ped

    dt_ped

    dt_ult_compra

    216155

    748

    12

    11,5

    16/02/2012 00:00

    03/07/2013 00:00

    216155

    501

    40

    7,87

    16/02/2012 00:00

    03/07/2013 00:00

    216155

    329

    6

    23,9

    16/02/2012 00:00

    03/07/2013 00:00

    216155

    368

    48

    11,98

    16/02/2012 00:00

    03/07/2013 00:00

    216155

    268

    6

    19,9

    16/02/2012 00:00

    03/07/2013 00:00

    216155

    412

    5,86

    39,9

    16/02/2012 00:00

    03/07/2013 00:00

    216524

    748

    12

    11,5

    22/02/2012 00:00

    03/07/2013 00:00

    216524

    501

    40

    7,87

    22/02/2012 00:00

    03/07/2013 00:00

    216524

    368

    48

    11,98

    22/02/2012 00:00

    03/07/2013 00:00

    216524

    412

    6,06

    39,9

    22/02/2012 00:00

    03/07/2013 00:00


    Eduardo Augusto

    terça-feira, 16 de julho de 2013 17:35

Respostas

  • Tente modificar para isso :

    SELECT
    
    TOP(5)
    
    p.cd_clien,
    
    p.nu_ped,
    
    i.cd_prod,
    
    i.qtde_unid_ped,
    
    i.vl_unit_ped,
    
    p.dt_ped,
    
    dt_ult_compra
    
    from ped_vda p
    
    join it_pedv i
    
    on i.nu_ped=p.nu_ped
    
    JOIN cliente c
    
    ON c.cd_clien=p.cd_clien
    
    where c.dt_ult_compra < =(convert(date,GETDATE(),102))
    
    AND c.cd_clien=9305 Order By dt_ult_compra DESC


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    terça-feira, 16 de julho de 2013 17:38

Todas as Respostas

  • Tente modificar para isso :

    SELECT
    
    TOP(5)
    
    p.cd_clien,
    
    p.nu_ped,
    
    i.cd_prod,
    
    i.qtde_unid_ped,
    
    i.vl_unit_ped,
    
    p.dt_ped,
    
    dt_ult_compra
    
    from ped_vda p
    
    join it_pedv i
    
    on i.nu_ped=p.nu_ped
    
    JOIN cliente c
    
    ON c.cd_clien=p.cd_clien
    
    where c.dt_ult_compra < =(convert(date,GETDATE(),102))
    
    AND c.cd_clien=9305 Order By dt_ult_compra DESC


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    terça-feira, 16 de julho de 2013 17:38
  • Boa tarde Davi, fiz o que você recomendou e o resultado a data da ultima compra não é a mesma do pedido, o correto não seria os resultados serem iguais ou um data próxima.

    Segue o resultado

    cd_clien nu_ped cd_prod qtde_unid_ped vl_unit_ped dt_ped dt_ult_compra
    9305 216155 748 12 11,5 16/02/2012 00:00:00 12/07/2013 00:00:00
    9305 216155 501 40 7,87 16/02/2012 00:00:00 12/07/2013 00:00:00
    9305 216155 329 6 23,9 16/02/2012 00:00:00 12/07/2013 00:00:00
    9305 216155 368 48 11,98 16/02/2012 00:00:00 12/07/2013 00:00:00
    9305 216155 268 6 19,9 16/02/2012 00:00:00 12/07/2013 00:00:00


    Eduardo Augusto

    terça-feira, 16 de julho de 2013 18:12
  • Não entendi o sua dúvida. Mas vou expor o entendimento o , primeiro qual é a utilidade do campo dt_ult_compra , se for justamente a gravação de uma ultima compra o resultado está correto pois pegou os 5 pedidos do cliente com as ultimas 5 compras . 

    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    terça-feira, 16 de julho de 2013 19:53
  • Me desculpe é que eu inseri o campo de ultima compra para certificar que eles estavam buscando corretamente e me confundi com a data do pedido que no exemplo acima foi hj e como o pedido não estava faturado o valor que permaneceu foi o de ultima compra mesmo.

    Agradeço a ajuda que você me passou.

    Atenciosamente.

    Eduardo.


    Eduardo Augusto

    terça-feira, 16 de julho de 2013 21:08