Ir para conteúdo

POWERED BY:

Arquivado

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

danielgatis

sql

Recommended Posts

O negoço he o seguinte tenho 2 tabelas: CONTRATO(cd_contrato,cd_controle) PARCELA(cd_parcela,cd_contrato,cd_controle,ch_tipo,dt_pagto) exemplos dos dados: contrato cd_contrato --- cd_controle ------------------------------- 1 ------------------ 1 2 ------------------ 1 3 ------------------ 1 4 ------------------ 1 5 ------------------ 1 -------------------------------- parcela cd_parcela ---- cd_contrato ---- cd_controle - ch_tipo --- dt_pagto --------------------------------------------------------------------------------- 1 ------------------ 1 --------------- 1 ------------- A -------- 19/08/04 2 ------------------ 1 --------------- 1 ------------- S -------- 19/08/04 3 ------------------ 1 --------------- 1 ------------- C -------- null 4 ------------------ 2 --------------- 1 ------------- S -------- 19/08/04 5 ------------------ 2 --------------- 1 ------------- A -------- 19/08/04 6 ------------------ 3 --------------- 1 ------------- S -------- 19/08/04 7 ------------------ 4 --------------- 1 ------------- A -------- 19/08/04 8 ------------------ 5 --------------- 1 ------------- A -------- null 9 ------------------ 5 --------------- 1 ------------- S -------- 19/08/04 --------------------------------------------------------------------------------- he o seguinte no meu programa no delphi tem um form com 3 checkbox: SELECIONAR CONTRATOS COM AS SEGUINTES PARCELAS PAGAS: .x. parcela A .x. parcela S ... parcela C <CONSULTAR> <FECHAR> pronto ai he o seguinte se eu marcar as parcelas A e S a consulta tem que me retornar o contrato 1 pq tem as parcelas A e S pagas (data <> null) o contrato 2 pq tem as parcelas A e S pagas o contrato 3 pq tem a parcela S paga e n tem parcela A para ele o contrato 4 pq tem a parcela A paga e n tem parcela S para ele do mermo jeito eu poderia escolher as 3 parcelas ou A e C ou qualquer outra combinação. estou usando o interbase 1.0.0.326 se algume pude me ajudar com o select pra isso ai eu agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Não fiz o teste, mas acho que o comando SQL ficaria parecido com esse:

 

Select cd_contrato from Contrat C Right join Parcela P on ( p.cd_Contrato = c.cd_Contrato )Where P.ch_Tipo in ( 'A', 'S' )   and P.dt_Pgto is Not Null

OBS: Montei baseando-se no SQL Server e não no Interbase, mas

acho que a adptação ao Interbase não seria complicada.

você pode substituir o ('A', 'S') através do Delphi montando o SQL dinamicamente.

 

Espero ter ajudado,

[]s

Henrique

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.