Busca dos 3 últimos pedidos de compra através do CPF do cliente.

27/06/2017

0

Bom dia;

Preciso de uma sintaxe para o postgresql onde através do CPF busque as 3 últimas compras do cliente, sendo que cada compra tem um número de pedido.
Lucas Anacleto

Lucas Anacleto

Responder

Post mais votado

27/06/2017

Bom dia Lucas.
Ficaria mais ou menos assim


SELECT COMPRA FROM TABELA WHERE PEDIDO IN (
SELECT PEDIDO FROM TABELA WHERE CPF = '12345678910' ORDER BY PEDIDO DESC LIMIT 3)



Grande abs

Luiz Santos

Luiz Santos
Responder

Mais Posts

27/06/2017

Gxf

Bom dia.

Exemplo:

SELECT top 3 numPedido,descricao
FROM tabela
WHERE cpf = 'cpf'
ORDER BY numPedido
Responder

05/07/2017

Lucas Anacleto

Boa tarde gente, desculpem a demora para retornar.

Luiz Fernando, seu código funcionou perfeitamente buscando cpf por cpf, porém, me pediram para que ao invés de trazer por apenas 1 cpf, trouxesse por vários, entende? como eu disse, no seu código aplicando 1 por 1 ele funciona, tentei colocar vários cpf''''s para busca e roda, porém, não me traz informação nenhuma, teria algum detalhe que teria q ser colocado? Tentei diversas formas e não consegui.

Grato pela atenção de todos!
Responder

05/07/2017

Luiz Santos

Lucas.

Para resolver seu problema, vai precisar usar um cursor. (pelo menos só consegui pensar nessa forma). E uma tabela (temporária) para armazenar os resultados.

Seu código ficaria mais ou menos assim:


DECLARE
  t_ped tabela_pedido%rowtype;
BEGIN
  FOR t_ped IN SELECT DISTINCT cpf FROM tabela_pedido LOOP
    IF t_ped.active THEN
      INSERT INTO XPTO...
      SELECT COMPRA FROM TABELA WHERE PEDIDO IN ( SELECT PEDIDO FROM TABELA WHERE CPF = t_ped.cpf ORDER BY PEDIDO DESC LIMIT 3)
    END IF;
  END LOOP;
END



Grande abraço
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar