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

PostgreSQL

Banco de Dados

27/06/2017

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

Curtidas 0

Melhor post

Luiz Santos

Luiz Santos

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
GOSTEI 3

Mais Respostas

Gxf

Gxf

27/06/2017

Bom dia.

Exemplo:

SELECT top 3 numPedido,descricao
FROM tabela
WHERE cpf = 'cpf'
ORDER BY numPedido
GOSTEI 0
Lucas Anacleto

Lucas Anacleto

27/06/2017

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!
GOSTEI 0
Luiz Santos

Luiz Santos

27/06/2017

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
GOSTEI 1
POSTAR