TABELAS REPETIDAS NA CONSULTA

CLEVERTON 07/05/2014 15:48:21
#437971
Salve Salve, então galera, acho ser uma coisa simples, mas não estou acertando desenrolar.

Eu tenho duas tabelas. VendasCab e Vendasz_Crediario

na VendasCab eu registro os dados do cabeçalho da venda, e na outra tabela eu registro dados de pagamento e recebimento da venda.

na SQL eu queria mencionar as duas tabelas repetindo os campos Vendasz_Crediario.Valor como mostra a imagem abaixo; porém não consigo fazer o JOIN corretamente.

Eu queria algo mais ou menos assim:
SELECT Lancamento.Valor, Baixa.Valor FROM

sendo que eu adiciono a tabela duas vezes na consulta
FROM
Vendasz_Crediario AS Lancamento
Vendasz_Crediario AS Baixa

e o Critério seria
WHERE Isnull(Lancamento.DataPgto) AND ( NOT Isnull(Baixa.DataPgto)

Alguém tem como me dar uma luz de como eu faço esse JOIN funcionar ?

... Segue a estrutura do DB em anexo;


KERPLUNK 07/05/2014 16:00:38
#437972

Select [ô]baixa[ô], Codigo, Valor From Baixa
[txt-color=#e80000]UNION[/txt-color]
Select [ô]Lancamento[ô], Codigo, Valor from lancamento
Where baixa.campo1 = valor1
and lancamento.campo1 = valor2


O que você quer é um UNION e não um join, conforme exemplo acima. Se precisar fazer um join desse resultado com outra tabela, também é possível.
CLEVERTON 07/05/2014 16:06:07
#437973
Não, quero o JOIN mesmo, union vai me trazer duas consultas.

o que eu quero é mostrar o valor pago e o valor baixado numa mesma linha.
CLEVERTON 07/05/2014 16:09:06
#437974
isso aí que vc mencionou, eu já tenho

Citação:

SELECT A.Codigo AS CodCab, A.NumeroCupom, B.Codigo AS CodDet, IIf(IsNull(B.DataPgto),A.DataVenda,B.DataPgto) AS Data, Format(IIf(IsNull(B.DataPgto),A.ValorBruto,B.Valor),[ô]#,##0.00[ô]) AS [Valor ], IIf(IsNull(B.DataPgto),[ô]LANÇAMENTO[ô],[ô]RECEBIMENTO[ô]) AS Movimento
[Ô]FROM Vendasz_Crediario AS B INNER JOIN VendasCab AS A ON B.CodigoCab = A.Codigo
[Ô]WHERE A.Contas_aReceber=True AND A.IDCliente=137



Mas não ficou muito prático, porque as vezes tem várias faturas/duplicatas;
exemplo. O devedor deve 800,00 em 20 faturas/duplicatas e está dividido em 10x, porém o cliente irá pagar somente 500,00 e o sistema vai pagando da mais antiga pra mais nova de uma forma mais fácil para o usuário.
CLEVERTON 09/05/2014 10:57:50
#438036
Bom, eu fiz da seguinte forma

Criei duas views, uma para Lançados e outra para Baixados, depois disto fiz o SELECT com o JOIN, por enquanto está resolvendo, porém ainda não acho que seja a maneira correta.

Citação:

SELECT Lancado.CodCab, Lancado.NumeroCupom, Lancado.Lançado, Baixado.Baixado, Lancado.IDCliente
FROM ContasReceberAvulso_Lancado AS Lancado LEFT JOIN ContasReceberAvulso_Baixado AS Baixado ON Lancado.CodCab = Baixado.CodCab;



Como são poucos registros 15.000, a resposta ainda está imediata, vamos ver no que dá. vou deixar o tópico em aberto, qualquer ajuda será bem vinda.
Tópico encerrado , respostas não são mais permitidas