CONSULTA ENTRE TABELAS

JACKSONVB 05/12/2006 11:53:44
#188051
gurisada..
seuinte...
tenho 2 tabelas, 'CONTAS_PAGAR" (com uma PK composta "CODIGO" E "N_PARCELA") e otra "PAGAMENTOS" (com um PK "SEQ" e com "FK" com a tabela "CONTAS_PAGAR" com os campos "CODIGO_CONTA" e "PARCELA_CONTA", e um campo "DATA_PGTO")
o q acontece é q estou fazendo pesquisas na tabela "CONTAS_PAGAR" e preciso traze na pesquisa as contas com um determinada intervalo de data de pagamento, ou seja pelo campo "DATA_PGTO" da tabela "PAGAMENTOS", so q porem eu posso ter diversos pagamentos de uma mesma conta, se eu fizer um Join entre elas, ele vai me traze repetido a conta com o numero de pagamentos q tem na tabela "PAGAMENTOS", so q o eu preciso é apenas pesquisa pelo campo 'DATA_PGTO" da tabela, naum preciso q ele me traga os registros da tabela "PAGAMENTOS", eu pensei em fazer um select na tabela "CONTAS_PAGAR", usando o "In", na condicão e faze um otro select na tabela 'PAGAMENTOS' pra pega os codigos das contas e coloca dentro do "In', porem o "In" seria de um campo só, e nesse caso eu tenho dois campos q identificam a qual conta pertence o pagamento "CODIGO_CONTA", "PARCELA_CONTA".

Qual a saida???? alguem me ajude please... hehe
grande abraço...
USUARIO.EXCLUIDOS 05/12/2006 13:53:19
#188077
Vc pode fazer um Left Join ou Left Outer Join... Se puder passar as estruturas aqui eu te mostro como.
JACKSONVB 05/12/2006 14:03:00
#188078
Andre Milare...
segue a i velhinho a minha SQL...

select CONTAS_PAGAR.* FROM CONTAS_PAGAR Left Join PAGAMENTOS On CONTAS_PAGAR.CODIGO=PAGAMENTOS.CODIGO_CONTA And CONTAS_PAGAR.N_PARCELA=PAGAMENTOS.PARCELA_CONTA WHERE PAGAMENTOS.DATA_PGTO = '11/10/2006'

vlws.. pela atenção
JACKSONVB 07/12/2006 11:19:21
#188539
ninguem pra me ajuda nessa probleminha?
JACKSONVB 08/12/2006 08:31:13
#188747
please.... help-me
USUARIO.EXCLUIDOS 08/12/2006 09:24:57
#188756
Resposta escolhida
Cara, vc pode fazer assim:

SELECT CONTAS_PAGAR.* FROM CONTAS_PAGAR
WHERE CONTAS_PAGAR.CODIGO IN (SELECT DISTINCT(PAGAMENTOS.CODIGO) WHERE DATA_PAGTO = '11/10/2006') AND CONTAS_PAGAR.N_PARCELA IN (SELECT DISTINCT(PAGAMENTOS.PARCELA_CONTA) WHERE DATA_PAGTO = '11/10/2006')

Ou então vc pode usar um GROUP BY:

select CONTAS_PAGAR.CAMPO1, CONTAS_PAGAR.CAMPO2 FROM CONTAS_PAGAR INNER Join PAGAMENTOS On CONTAS_PAGAR.CODIGO=PAGAMENTOS.CODIGO_CONTA And CONTAS_PAGAR.N_PARCELA=PAGAMENTOS.PARCELA_CONTA WHERE PAGAMENTOS.DATA_PGTO = '11/10/2006'
GROUP BY CONTAS_PAGAR.CAMPO1, CONTAS_PAGAR.CAMPO2

Qualquer dúvida poste...flw
JACKSONVB 09/12/2006 10:55:25
#188966
claro.. o group by...
vlw matioli...
abração a todos
Tópico encerrado , respostas não são mais permitidas