Caro Alexandre,
Creio que comando abaixo soluciona seu problema:
Select PP.CdEmpresa, PP.CdFilial, PP.CdTabela, PP.SqTabela,
PP.TpItem,PP.CdProduto,
PP.VlCusto, PP.VlVenda, PP.CdIndiceCusto, PP.CdIndiceVenda, PP.Obs
,
PP.UpdRegistro , P.DsVenda
>From ProdutoPreco PP, Produto P
Where cdtabela = '10' and sqtabela= 1 and PP.tpitem = '5' and
PP.CdEmpresa = P.CdEmpresa and
PP.CdFilial = P.CdFilial and
PP.CdProduto = P.CdProduto)
UNION
Select PP.CdEmpresa, PP.CdFilial, PP.CdTabela, PP.SqTabela,
PP.TpItem,PP.CdProduto,
PP.VlCusto, PP.VlVenda, PP.CdIndiceCusto, PP.CdIndiceVenda, PP.Obs
,
PP.UpdRegistro , S.Descricao
>From ProdutoPreco PP, Servico S
Where cdtabela = '10' and sqtabela= 1 and PP.tpitem <> '5' and
PP.CdEmpresa = S.CdEmpresa and
PP.CdFilial = S.CdFilial and
PP.CdProduto = S.CdServico
Ok ?
F.L.
> ----- Mensagem original -----
> De: Alexandre [SMTP:[EMAIL PROTECTED]]
> Enviada em: segunda-feira, 7 de agosto de 2000 10:39
> Para: Virtualand - SQLWin (Correio eletr�nico)
> Assunto: [sqlwin] Joins entre tabelas
>
> Preciso construir uma clausula SQL de uma tabela base e mais duas outras
> para pegar a descricao.
> Tenho a tabela ProdutoPreco e preciso da descricao do Produto - tabela
> Produto - ou a descricao do Servico - tabela Servico.
> A clausula abaixo est� replicando os registros. Se utilizo apenas Produto
> ou Servico junto de ProdutoPreco , a sele��o fica correta mas com as 3
> tabelas duplica tudo.
> As chaves primarias s�o:
> Produto = CdEmpresa, CdFilial, CdProduto
> Servico = CdEmpresa, CdFilial, CdServico
> ProdutoPreco = CdEmpresa, CdFilial, CdTabela, SqTabela, TpItem, CdProduto
> nesta ordem.
>
> Se algu�m puder ajudar, grato.
>
> Select ProdutoPreco.CdEmpresa, ProdutoPreco.CdFilial,
> ProdutoPreco.CdTabela,
> ProdutoPreco.SqTabela, ProdutoPreco.TpItem,
> ProdutoPreco.CdProduto,ProdutoPreco.VlCusto,
> ProdutoPreco.VlVenda, ProdutoPreco.CdIndiceCusto,
> ProdutoPreco.CdIndiceVenda, ProdutoPreco.Obs ,
> ProdutoPreco.UpdRegistro , DsVenda = CASE TpItem WHEN '5' then
> Produto.DsVenda
> else Servico.Descricao end from ProdutoPreco, Produto , Servico
> Where cdtabela = '10' and sqtabela= 1 and produtopreco.tpitem = "5" and
> ( (ProdutoPreco.CdEmpresa = Produto.CdEmpresa and
> ProdutoPreco.CdFilial = Produto.CdFilial and
> ProdutoPreco.CdProduto = Produto.CdProduto)
> or
> (ProdutoPreco.CdEmpresa = Servico.CdEmpresa and
> ProdutoPreco.CdFilial = Servico.CdFilial and
> ProdutoPreco.CdProduto = Servico.CdServico) )
>
> =============================================Lista de Centura SQLWindows
> Administrador : [EMAIL PROTECTED]
> [ http://www.centuraexplorer.com ]
> Para sair desta lista mande mensagem para:
> [EMAIL PROTECTED] sem nada no Subject e
> com o comando a seguir no corpo da msg:
> "unsubscribe sqlwin" (sem as aspas)
> =============================================
���������������Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
���������������