UTNianos

Versión completa: DUDA FINAL GESTION DE DATOS
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola, alguien puede decirme como traduzco esto que esta en PL/SQL a ANSI-SQL? Lo preguntaron en un final y la verdad no encuentro la manera de hacer un LEFT OUTER JOIN


SELECT nfactura, importe, NVL(t2.importe, 'sin cliente')
FROM facturas t1 lef outer join clientes t2 on t1.codcli = t2.codcli
WHERE t1.fecha>(sysdate-365)


Se agradece !
Un LEFT JOIN y un LEFT OUTER JOIN son lo mismo. Y si mal no recuerdo en ANSI un LEFT JOIN se hace con *=.



SELECT nfactura, importe, ISNULL(t2.importe, 'sin cliente')
FROM facturas t1, clientes t2
WHERE t1.codcli *= t2.codcli
and t1.fecha> SYSDATETIME() - 365


Espero te sea util.
(04-10-2016 22:23)guilletala escribió: [ -> ]Un LEFT JOIN y un LEFT OUTER JOIN son lo mismo. Y si mal no recuerdo en ANSI un LEFT JOIN se hace con *=.



SELECT nfactura, importe, ISNULL(t2.importe, 'sin cliente')
FROM facturas t1, clientes t2
WHERE t1.codcli *= t2.codcli
and t1.fecha> SYSDATETIME() - 365


Espero te sea util.

Antes que nada, gracias por tu pronta respuesta, pero tengo entendido que ese simbolo (*) como en PLSQL esta el (+) para indicar un OUTER JOIN, left o right, dependiendo de que lado de la clave de la tabla 2 este el mismo, es especifico de algun motor, no de ANSI-SQL, igualmente un compañero encontró esta forma de resolverlo:

en ANSI-SQL


SELECT nfactura, importe, ISNULL((SELECT t2.nombre FROM clientes t2 WHERE t2.codcli=t1.codcli), 'sin cliente')
FROM facturas t1
AND t1.fecha > (SYSDATETIME-365)

URLs de referencia