Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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'
)
Marcelo, bom dia.
Creio que você possa fazer o seguinte:
FROM tabela_parcelas as a WHERE a.numero_pedido NOT INDesta 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