Si, lo unico que tenes que cambiar es la tabla sga_insc_subcomision el campo subcomision. Podes hacer lo siguiente:
/* Consulta para buscar la subcomisiones, comisiones…*/
SELECT v.anio_academico, v.periodo_lectivo_nombre, v.elemento_codigo as actividad_codigo, v.elemento_nombre as actividad_nombre, v.comision, v.comision_nombre, s.*, ct.nombre as tipo_clase_nombre
FROM sga_subcomisiones as s, sga_clases_tipos as ct, vw_comisiones as v
WHERE v.comision = s.comision AND ct.tipo_clase = s.tipo_clase
ORDER BY v.anio_academico, v.periodo_lectivo_nombre, v.elemento_nombre, v.comision_nombre
Una vez identificada la comision y las subcomisiones, buscas los alumnos inscriptos en la subcomision origen:
SELECT p.apellido, p.nombres, s.inscripcion
FROM sga_insc_cursada as ic,
sga_insc_subcomision as s,
sga_alumnos as a,
vw_personas as p
WHERE ic.comision = <ID comision>
AND a.alumno = ic.alumno
AND p.persona = a.persona
AND s.inscripcion = ic.inscripcion
AND s.subcomision = <ID subcomision origen>
ORDER BY p.apellido, p.nombres
De aca sacas los datos de “inscripcion” (insc1, insc2, … inscn) para borrar esas inscripciones en la subcomision origen, e insertarlo en la subcomision destino:
BEGIN WORK;
-- Insertar las inscripciones en la subcomision destino
INSERT INTO sga_insc_subcomision (inscripcion, subcomision)
SELECT s.inscripcion, <id subcomision destino>
FROM sga_insc_subcomision as s
sga_insc_cursada as c
WHERE s.inscripcion = c.inscripcion
AND c.comision = <id comision>
AND s.subcomision = <id subcomision origen>
AND s.inscripcion IN (insc1, insc2, ... inscn) ;
-- Borrar las inscripciones a la subcomision origen
DELETE FROM sga_insc_subcomision
WHERE inscripcion IN ( insc1, insc2, .... inscn)
AND subcomision = <id subcomision origen> ;
COMMIT WORK;
Aplica estos cambios en una base de test, verifica los cambios y luego hacelo en la base de producción.
Saludos.