Created
August 9, 2012 04:04
-
-
Save wyanez/3300850 to your computer and use it in GitHub Desktop.
SELECT donde se ilustra un JOIN Condicional y el uso de COALESCE en Postgres
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Luego mis busquedas por numero de documento seran como esto: | |
SELECT * FROM sas.viw_auditoria_num | |
WHERE numero_doc='26' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Descripción | |
-- Tengo una Tabla de Auditoria (auditoria_sas) con los siguientes Campos: | |
-- id,fecha,hora,usuario,tabla,operacion,registro_id | |
-- registro_id es el id del registro correspondiente en la tabla dada por el campo tabla | |
-- y necesito el numero de cada documento que está en cada tabla para una búsqueda por numero de documento | |
-- Necesito hacer un join condicional, mi solución fue: (Gracias al Left JOIN y a la función COALESCE en Postgres!) | |
CREATE OR REPLACE VIEW sas.viw_auditoria_num AS | |
SELECT a.*, | |
COALESCE(o.numero,to_char(e.id,'FM99999'),to_char(s.id,'FM99999'),f.numero,to_char(fu.id,'FM99999'),to_char(p.id,'FM99999'),'N/A') as numero_doc | |
FROM sas.auditoria_sas a | |
LEFT OUTER JOIN sas.ordenes_servicio o ON (a.registro_id=o.id and tabla='ordenes_servicio') | |
LEFT OUTER JOIN sas.emergencias e ON (a.registro_id=e.id and tabla='emergencias') | |
LEFT OUTER JOIN sas.solicitudes s ON (a.registro_id=s.id and tabla='solicitudes') | |
LEFT OUTER JOIN sas.facturas f ON (a.registro_id=f.id and tabla='facturas') | |
LEFT OUTER JOIN sas.funerarias fu ON (a.registro_id=fu.id and tabla='funerarias') | |
LEFT OUTER JOIN sas.polizas p ON (a.registro_id=p.id and tabla='polizas') | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment