Fórum Relatorio usando SQL #278009
19/04/2005
0
Caro colegas;
precisso criar um relatorio usando duas tabelas com SQL:
[b:3c5a9ee5a2]LANC001[/b:3c5a9ee5a2] : Esta tabela recebe os lancamentos de movimento diario.
[b:3c5a9ee5a2]TMOV001[/b:3c5a9ee5a2] : Esta tabela esta o registro de cada conta de movimento.
Tentei com este codigo, mas repete todos os codigos da tabela TMOV001.
Desejaria obter um relatorio assim;
{cabecalho, dados da tabela TMOV001}
CODIGO + DESCRICAO
{corpo do relatorio, dados da tabela LANC001}
DATA + HISTORICO + VALOR
Esta simulação seria o modelo desejado;
01 Retirada de socios
-------------------------------------------------------------------------
01/02/2005 Pagamento de pro-labore 1,000.00
02/02/2005 Pagamento de conta energia 250.00
--------------------------------------------------------------------------
Sub-total: 2,250.00
02 Pag INSS/FGTS
--------------------------------------------------------------------------
01/02/2005 Pagamento de inss ref jan/05 350.00
02/02/2005 Pagamento de fgts ref jan/05 750.00
--------------------------------------------------------------------------
Sub-total: 1,100.00
--------------------------------------------------------------------------
Total: 3,350.00
[b:3c5a9ee5a2]Obs: Uso DBase IV[/b:3c5a9ee5a2]
Um abraço;
___________________
SPL (THE).
Gostaria de obter ajuda dos colegas.
precisso criar um relatorio usando duas tabelas com SQL:
[b:3c5a9ee5a2]LANC001[/b:3c5a9ee5a2] : Esta tabela recebe os lancamentos de movimento diario.
[b:3c5a9ee5a2]TMOV001[/b:3c5a9ee5a2] : Esta tabela esta o registro de cada conta de movimento.
Tentei com este codigo, mas repete todos os codigos da tabela TMOV001.
SELECT TMOV001.CODIGO, TMOV001.DESCRICAO, LANC001.COD_MOV, LANC001.HISTORICO, LANC001.VALOR, LANC001.DATA FROM TMOV001 LEFT JOIN LANC001 ON TMOV001.CODIGO = LANC001.COD_MOV
Desejaria obter um relatorio assim;
{cabecalho, dados da tabela TMOV001}
CODIGO + DESCRICAO
{corpo do relatorio, dados da tabela LANC001}
DATA + HISTORICO + VALOR
Esta simulação seria o modelo desejado;
01 Retirada de socios
-------------------------------------------------------------------------
01/02/2005 Pagamento de pro-labore 1,000.00
02/02/2005 Pagamento de conta energia 250.00
--------------------------------------------------------------------------
Sub-total: 2,250.00
02 Pag INSS/FGTS
--------------------------------------------------------------------------
01/02/2005 Pagamento de inss ref jan/05 350.00
02/02/2005 Pagamento de fgts ref jan/05 750.00
--------------------------------------------------------------------------
Sub-total: 1,100.00
--------------------------------------------------------------------------
Total: 3,350.00
[b:3c5a9ee5a2]Obs: Uso DBase IV[/b:3c5a9ee5a2]
Um abraço;
___________________
SPL (THE).
Gostaria de obter ajuda dos colegas.
P_lima
Curtir tópico
+ 0
Responder
Posts
19/04/2005
Gandalf.nho
Que ferramenta de relatório vc usa?
Responder
Gostei + 0
19/04/2005
Raserafim
lima, o seu problema e a solução pode está na linha:
quando vc utiliza LEFT está dizendo que quer todos os registros do lado esquerdo do relacionamento (neste caso o da tabela TMOV001), por isso está aparecendo todos os registros desta tabela.
Se vc quer exibir todos os registros de LANC001 e apenas os de TMOV001 que tem correspondência em LANC001, troque LEFT por RIGHT, ou troque as tabelas de posição no relacionamento.
Mas acho que o seu problema vai ser resolvido apenas tirando o LEFT, com isso só será exibido os registros que tem nas duas tabelas. ficando assim o seu código:
FROM TMOV001 LEFT JOIN LANC001
quando vc utiliza LEFT está dizendo que quer todos os registros do lado esquerdo do relacionamento (neste caso o da tabela TMOV001), por isso está aparecendo todos os registros desta tabela.
Se vc quer exibir todos os registros de LANC001 e apenas os de TMOV001 que tem correspondência em LANC001, troque LEFT por RIGHT, ou troque as tabelas de posição no relacionamento.
Mas acho que o seu problema vai ser resolvido apenas tirando o LEFT, com isso só será exibido os registros que tem nas duas tabelas. ficando assim o seu código:
SELECT TMOV001.CODIGO, TMOV001.DESCRICAO, LANC001.COD_MOV, LANC001.HISTORICO, LANC001.VALOR, LANC001.DATA FROM TMOV001 JOIN LANC001 ON TMOV001.CODIGO = LANC001.COD_MOV
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)