Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcelo de Andrade

Como percorrer as tuplas referentes a uma ID e checar seus valores?

Recommended Posts

Preciso verificar se todas as parcelas de um determinado foram pagas. Eu tenho a seguinte tabela:

 

tabela_parcelas:

ID	| PARCELA  | SITUACAO	| NUMERO_PEDIDO
1 	| 1 	      PAGO 	    1234
2 	| 2           PAGO 	    1234
3 	| 1           PAGO          9999 
4 	| 2           PENDENTE      9999   
5 	| 3           PENDENTE      9999
6 	| 1           PAGO          1111
7 	| 2           PAGO          1111
8 	| 3           PAGO          1111   
9 	| 1           PAGO          3333 
10 	| 2           PENDENTE      3333 

Fiz da seguinte forma:

SELECT * FROM tabela_parcelas WHERE id NOT IN 
(SELECT id FROM tabela_parcelas WHERE situacao > 0); 

Mas ele me retorna os pedidos com algumas das parcelas pendentes.

Preciso selecionar somente os pedidos que estejam com todas as parcelas pagas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo, bom dia.

 

Creio que você possa fazer o seguinte:

SELECT 
  a.* 
FROM
  tabela_parcelas as a 
WHERE a.numero_pedido NOT IN 
  (SELECT 
    b.numero_pedido 
  FROM
    tabela_parcelas as b 
  WHERE b.situacao > 0 
    and a.numero_pedido = b.numero_pedido );

Desta forma você verifica o pedido, não o id, afinal, cada pedido pode ter vários id's na tabela_parcelas.

 

Espero ter sido útil, abraços.

 

_ _

Fabiano Abreu

Papo SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, Fabiano. Eu consegui utilizando a seguinte consulta:

SELECT * FROM tableA A1
    WHERE NOT EXISTS 
    ( SELECT 1 from tableA A2
      where A1.order_id= A2.order_id
      and A2.status <> 'COMPLETE'
    ) 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.