assim:
create table #tb_ord
(
Numero numeric,
CodCli numeric,
CodVen numeric,
CodProd numeric,
CodProdAnt numeric,
Valor float
)
create table #tb_estoque
(
CodProd numeric,
Descricao varchar(20)
)
set nocount on
insert into #tb_estoque (CodProd, Descricao) values (1, 'teste')
insert into #tb_estoque (CodProd, Descricao) values (2, 'teste1')
insert into #tb_ord (Numero, CodCli, CodVen, CodProd, CodProdAnt, Valor) values (1, 1, 1, 1, 1, 1)
update #tb_ord set CodProdAnt = CodProd , CodProd = 2 where Numero = 1
select * from #tb_ord
select * from #tb_estoque
--resultado na mesma linha
select *
from #tb_ord
left outer join #tb_estoque Est1 on Est1.CodProd = #tb_ord.CodProd
left outer join #tb_estoque Est2 on Est2.CodProd = #tb_ord.CodProdAnt
--resultado em linhas diferentes
select 'Produto Trocado',*
from #tb_ord
left outer join #tb_estoque Est1 on Est1.CodProd = #tb_ord.CodProd
union all
select 'Produto Comprado Inicialmente',*
from #tb_ord
left outer join #tb_estoque Est2 on Est2.CodProd = #tb_ord.CodProdAnt
drop table #tb_ord
drop table #tb_estoque
--resultado do selects
Numero CodCli CodVen CodProd CodProdAnt Valor
--------- -------- -------- --------- ------------- --------
1 1 1 2 1 1.0
CodProd Descricao
-------------------- --------------------
1 teste
2 teste1
Numero CodCli CodVen CodProd CodProdAnt Valor CodProd Descricao CodProd Descricao
-------- --------- -------- ---------- ------------- --------- ----------- ------------ ----------- -----------
1 1 1 2 1 1.0 2 teste1 1 teste
Numero CodCli CodVen CodProd CodProdAnt Valor CodProd Descricao
----------------------------- -------- --------- --------- ---------- ------------- -------- --------- --------------------
Produto Trocado 1 1 1 2 1 1.0 2 teste1
Produto Comprado Inicialmente 1 1 1 2 1 1.0 1 teste