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)
���������������

Responder a