Ir para conteúdo

POWERED BY:

Arquivado

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

henrique_software

[Resolvido] Consulta SQL

Recommended Posts

Olá.

 

Preciso fazer uma consulta sql que me retorne os pagamentos de algumas contas do cliente.

 

Eu fiz a seguinte query:

 

SELECT p.DATA, p.COD_FIRMA, p.COD_HISTOR, p.VALOR, p.COMPLEM,

p.DATA_PAG, p.VALORPAG, p.CONTA_PAG, h.HISTORICO, h.TIPOHISTOR,

h.COD_HISTOR, p.TIPO_LAN, c.COD_CONTA, c.NOME_CONTA

FROM PAGAR p, HISTORICO h, CONTA c

WHERE (p.COD_FIRMA = 001) AND

(p.conta_pag = c.cod_conta ) AND

((p.DATA >= :vdt1) AND (p.DATA <= :vdt2))

AND (p.COD_HISTOR = h.COD_HISTOR)

Existem 4 tipos de pagamento (caixa,banco...etc ).

Existem 2 condições,se ele pagou,ele recebe um código (p.conta_pag),que é onde mostra onde ele efetuou o pagamento,que seria um dos 4 tipos que falei acima.

A outra condição seria se ele não efetuou o pagamento,no caso o código ficaria nulo (p.conta_pag) certo ?

 

Ai esta o problema,na query que eu coloquei acima,a consulta só me retornará valores cujo foi efetuado o pagamento,conforme a condição que eu fiz >>> (p.conta_pag = c.cod_conta ) ,certo ? Porém ele nao vai me retornar um resultado cujo o pagamento não foi efetuado,pois o "p.conta_pag" sera nulo e nunca vai ser igual ao "c.cod_conta".Existe alguma solução para que nesta mesma query ele também me mostra resultados dos que não forem pagos ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente usar um OR

SELECT p.DATA, p.COD_FIRMA, p.COD_HISTOR, p.VALOR, p.COMPLEM,
p.DATA_PAG, p.VALORPAG, p.CONTA_PAG, h.HISTORICO, h.TIPOHISTOR,
h.COD_HISTOR, p.TIPO_LAN, c.COD_CONTA, c.NOME_CONTA
FROM PAGAR p, HISTORICO h, CONTA c
WHERE (p.COD_FIRMA = 001) AND ((p.conta_pag = c.cod_conta) OR (p.conta_pag = null)) AND ((p.DATA >= :vdt1) AND (p.DATA <= :vdt2)) AND (p.COD_HISTOR = h.COD_HISTOR)

 

Acho que deve funcionar!

Abraços...

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.