La Web del Programador: Comunidad de Programadores
 
    Pregunta:  58701 - COMO UNIR 2 TABLAS EN SQL, QUE NO TIENEN CAMPOS EN COMÚN.
Autor:  Linney Perez Cornelio
buenas tardes, como puedo unir 2 tablas, en la que la primera tabla contiene todos los movimientos sin pagar, la segunda tabla contiene todo lo que ya se pago, necesito unir ambas de tal forma que queda:

Codigo Monto Depositado X Depositar
EFEVO 2000 1000 1000
Tarjet 500 0 500

El problema es que al tratar de unirlas,solo me muestra lo que tiene depositado lo demas no.

Espero me haya explicado, Gracias.

  Respuesta:  Linney Perez Cornelio
Ya encontre la solución, lo que hize fue utilizar el comando FULL OUTER JOIN, este comando lo que hace es poner todo lo de la tabla derecha en la izquierda, en caso de no encontrarlo le pone NULL.
Les paso el codigo, tuve que usar una tabla temporal.

if exists (select [id] from tempdb..sysobjects where id = Object_Id('tempdb..#e') and type = 'U') drop table #e

SELECT
b.fechadoc,b.formapago,a.MONTO,b.Depositado,(a.monto-b.depositado) as PorDepositar

into #e
FROM #a a

FULL OUTER JOIN #b b

ON b.fechadoc=a.FEC_DEC and a.idCodigo=b.idCodigo

Con este query puedo unir ambas tablas, de la siguiente forma

Fecha Codigo Monto Depositado XDepositar
NULL NULL 25000.00 NULL NULL
20080915 TARJET 7944.5900 7944.5900 0000

El Null se soluciona con un IS null, esa respuesta es de otra pregunta.