GARANTIR DESCONTO

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.

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

P_lima

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:
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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar