Me encanta Firebird,
y nunca me he presentado con realizar intrucciones complicadas en firebird.
Y siempre hay que encontrar una solución jachguate.
Saludos.
les muestro el select que hice en oracle, para una insercción masiva:
Código SQL
[-]
FROM m4_PRESUPUESTOS PRE
WHERE PRE.id_ejercicio = vEjer_Tes
AND
(PRE.id_centro_costo, PRE.id_partida, PRE.id_programa, PRE.id_proyecto)
IN
(select pt.id_centro_costo, pt.id_partida, pt.id_programa, pt.id_proyecto from m4_presupuestos pt
where pt.id_ejercicio = vEjer_Tes
MINUS
select p.id_centro_costo, p.id_partida, p.id_programa, p.id_proyecto from M4t_PRESUPUESTOS_GASTO p
where p.id_ejercicio = vEjercicio and p.version = vVersion);