CONSULTA ENTRE TABELAS
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...
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...
Vc pode fazer um Left Join ou Left Outer Join... Se puder passar as estruturas aqui eu te mostro como.
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
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
ninguem pra me ajuda nessa probleminha?
please.... help-me
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
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
claro.. o group by...
vlw matioli...
abração a todos
vlw matioli...
abração a todos
Tópico encerrado , respostas não são mais permitidas