
10/04/2007, 09:47
|
 | Colaborador | | Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años, 2 meses Puntos: 38 | |
Re: oTRO select feo Espero te sirva....
Código:
If object_id('tempdb..#tmp1') is not null drop table #tmp1
If object_id('tempdb..#tmp2') is not null drop table #tmp2
Create table #tmp1 (IdEmpresa int, IdOficina int, IdOrdenCompra int, Monto1 float, Monto2 float)
Create table #tmp2 (IdEmpresa int, IdOficina int, IdOrdenCompra int, Monto1 float, Monto2 float)
insert into #tmp1 (IdEmpresa, IdOficina, IdOrdenCompra, Monto1, Monto2) values(2,7,1,50, 0)
insert into #tmp1 (IdEmpresa, IdOficina, IdOrdenCompra, Monto1, Monto2) values(2,7,2,30, 0)
insert into #tmp1 (IdEmpresa, IdOficina, IdOrdenCompra, Monto1, Monto2) values(2,7,3,10, 0)
insert into #tmp2 (IdEmpresa, IdOficina, IdOrdenCompra, Monto1, Monto2) values(2,7,2,0, 50)
insert into #tmp2 (IdEmpresa, IdOficina, IdOrdenCompra, Monto1, Monto2) values(2,7,3,0, 20)
insert into #tmp2 (IdEmpresa, IdOficina, IdOrdenCompra, Monto1, Monto2) values(2,7,4,0, 60)
Select isnull(U.IdEmpresa, D.IdEmpresa) IdEmpresa
,isnull(U.IdOficina, D.IdOficina) IdOficina
,isnull(U.IdOrdenCompra, D.IdOrdenCompra) IdOrdenCompra
,Case When U.IdEmpresa is null Then D.Monto1 Else U.Monto1 End Monto1
,Case When D.IdEmpresa is null Then U.Monto2 Else D.Monto2 End Monto2
From #tmp1 U
Full outer join
#tmp2 D
On U.IdEmpresa = D.IdEmpresa And
U.IdOficina = D.IdOficina And
U.IdOrdenCompra = D.IdOrdenCompra
Order by
IdEmpresa
,IdOficina
,IdOrdenCompra
IdEmpresa IdOficina IdOrdenCompra Monto1 Monto2
----------- ----------- ------------- ------- ------------
2 7 1 50.0 0.0
2 7 2 30.0 50.0
2 7 3 10.0 20.0
2 7 4 0.0 60.0
(4 row(s) affected)
__________________ La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications. |