Tengo la siguiente sentencia en ORACLE
sql
SELECT A.NOMBRE NOMINA_ACTUAL, B.NOMBRE NOMINA_ANTERIOR, A.TIPO, NVL(A.NOMBRE_COMPLETO, B.NOMBRE_COMPLETO) NOMBRE_COMPLETO, NVL(A.TRANSACCION, B.TRANSACCION) TRANSACCION, NVL(A.MONTO, 0) MONTO_ACTUAL, NVL(B.MONTO, 0) MONTO_ANTERIOR, NVL(A.MONTO, 0) - NVL(B.MONTO, 0) DIFERENCIA, CASE WHEN NVL(A.MONTO, 0) - NVL(B.MONTO, 0) > 0 THEN 'Aumento' WHEN NVL(A.MONTO, 0) - NVL(B.MONTO, 0) < 0 THEN 'Disminución' ELSE 'N/A' END EFECTO, CASE WHEN ((A.ID_TRANSACCION = :TRXSALARIO) OR (B.ID_TRANSACCION = :TRXSALARIO)) AND (NVL(A.MONTO, 0) - NVL(B.MONTO, 0) > 0) AND (NVL(B.MONTO, 0) = 0) THEN 'Contratación' WHEN ((A.ID_TRANSACCION = :TRXSALARIO) OR (B.ID_TRANSACCION = :TRXSALARIO)) AND (NVL(A.MONTO, 0) - NVL(B.MONTO, 0) > 0) AND (NVL(B.MONTO, 0) > 0) THEN 'Aumento' WHEN ((A.ID_TRANSACCION = :TRXSALARIO) OR (B.ID_TRANSACCION = :TRXSALARIO)) AND (NVL(A.MONTO, 0) - NVL(B.MONTO, 0) < 0) AND (NVL(A.MONTO, 0) = 0) THEN 'Salida' WHEN ((A.ID_TRANSACCION = :TRXSALARIO) OR (B.ID_TRANSACCION = :TRXSALARIO)) AND (NVL(A.MONTO, 0) - NVL(B.MONTO, 0) < 0) AND (NVL(A.MONTO, 0) > 0 AND NVL(B.MONTO, 0) > 0) THEN 'Disminución' ELSE '' END CAUSA FROM ( SELECT A.NOMBRE, B.NOMBRE TIPO, D.NOMBRE_COMPLETO, E.NOMBRE TRANSACCION, A.TIPO_DE_NOMINA, C.ID_TRANSACCION, SUM(ABS(C.MONTO)) MONTO FROM MAESTRO_DE_NOMINAS A JOIN TIPOS_DE_NOMINAS B ON A.COMPANIA = B.COMPANIA AND A.TIPO_DE_NOMINA = B.TIPO_DE_NOMINA JOIN SUBDETALLE_DE_NOMINAS C ON A.ID_NOMINA = C.ID_NOMINA JOIN EMPLEADOS D ON C.ID_EMPLEADO = D.ID_EMPLEADO JOIN TRANSACCIONES_DE_NOMINAS E ON C.ID_TRANSACCION = E.ID_TRANSACCION WHERE A.COMPANIA = :COMPANIA AND A.TIPO_DE_NOMINA = :TIPO_DE_NOMINA AND A.ID_NOMINA = :ID_NOMINA AND INSTR(','|| :ID_TRANSACCION ||',' , ','|| C.ID_TRANSACCION ||',') > 0 GROUP BY A.NOMBRE, B.NOMBRE, D.NOMBRE_COMPLETO, E.NOMBRE, A.TIPO_DE_NOMINA, C.ID_TRANSACCION ) A FULL JOIN ( SELECT A.NOMBRE, B.NOMBRE TIPO, D.NOMBRE_COMPLETO, E.NOMBRE TRANSACCION, A.TIPO_DE_NOMINA, C.ID_TRANSACCION, SUM(ABS(C.MONTO)) MONTO FROM MAESTRO_DE_NOMINAS A JOIN TIPOS_DE_NOMINAS B ON A.COMPANIA = B.COMPANIA AND A.TIPO_DE_NOMINA = B.TIPO_DE_NOMINA JOIN SUBDETALLE_DE_NOMINAS C ON A.ID_NOMINA = C.ID_NOMINA JOIN EMPLEADOS D ON C.ID_EMPLEADO = D.ID_EMPLEADO JOIN TRANSACCIONES_DE_NOMINAS E ON C.ID_TRANSACCION = E.ID_TRANSACCION WHERE A.COMPANIA = :COMPANIA AND A.TIPO_DE_NOMINA = :TIPO_DE_NOMINA AND A.ID_NOMINA = :ID_NOMINA -1 AND INSTR(','|| :ID_TRANSACCION ||',' , ','|| C.ID_TRANSACCION ||',') > 0 GROUP BY A.NOMBRE, B.NOMBRE, D.NOMBRE_COMPLETO, E.NOMBRE, A.TIPO_DE_NOMINA, C.ID_TRANSACCION) B ON A.TIPO = B.TIPO AND A.NOMBRE_COMPLETO = B.NOMBRE_COMPLETO --AND A.TRANSACCION = B.TRANSACCION AND A.TIPO_DE_NOMINA = B.TIPO_DE_NOMINA AND A.ID_TRANSACCION = B.ID_TRANSACCION WHERE (NVL(A.MONTO, 0) - NVL(B.MONTO, 0)) <> 0 ORDER BY A.TIPO, NVL(A.TRANSACCION, B.TRANSACCION), NVL(A.NOMBRE_COMPLETO, B.NOMBRE_COMPLETO)
Necesito llevarla a Firebird 1.5.3.
¿Cuál sería el camino mas corto?
P.D. Migrar a Firebird 2.x no es una opción.
Gracias anticipadas!