Realice la siguiente consulta para ver cuales son los alumnos que ya existen en G3:
SELECT
cpa.alumno,
sa.legajo,
cpp.persona,
cppr.propuesta,
cppv.plan_version,
nsa.alumno,
nsa.propuesta,
nsa.plan_version
FROM
mig.sga_alumnos as sa,
mig._cnv_pk_alumnos as cpa,
mig._cnv_pk_personas as cpp,
mig._cnv_pk_propuestas as cppr,
mig.sga_planes as sp,
mig._cnv_pk_planes_versiones as cppv,
mig._cnv_pk_sedes as cps,
negocio.sga_alumnos AS nsa
WHERE
cpa.tabla = ‘sga_alumnos’ AND
sa.unidad_academica = cpa.unidad_academica AND
sa.carrera = cpa.carrera AND
sa.legajo = cpa.legajo AND
cpp.unidad_academica = sa.unidad_academica AND
cpp.nro_inscripcion = sa.nro_inscripcion AND
cppr.unidad_academica = sa.unidad_academica AND
cppr.carrera = sa.carrera AND
cps.sede = sa.sede AND
sp.unidad_academica = sa.unidad_academica AND
sp.carrera = sa.carrera AND
sp.plan = sa.plan AND
cppv.unidad_academica = sp.unidad_academica AND
cppv.carrera = sp.carrera AND
cppv.plan_g2 = sp.plan AND
cppv.version = sp.version_actual
AND nsa.persona=cpp.persona AND nsa.propuesta=cppr.propuesta
;
UPDATE
mig._cnv_pk_alumnos AS cpa
SET
alumno=nsa.alumno
FROM
mig.sga_alumnos as sa,
mig._cnv_pk_personas as cpp,
mig._cnv_pk_propuestas as cppr,
mig.sga_planes as sp,
mig._cnv_pk_planes_versiones as cppv,
mig._cnv_pk_sedes as cps,
negocio.sga_alumnos AS nsa
WHERE
cpa.tabla = 'sga_alumnos' AND
sa.unidad_academica = cpa.unidad_academica AND
sa.carrera = cpa.carrera AND
sa.legajo = cpa.legajo AND
cpp.unidad_academica = sa.unidad_academica AND
cpp.nro_inscripcion = sa.nro_inscripcion AND
cppr.unidad_academica = sa.unidad_academica AND
cppr.carrera = sa.carrera AND
cps.sede = sa.sede AND
sp.unidad_academica = sa.unidad_academica AND
sp.carrera = sa.carrera AND
sp.plan = sa.plan AND
cppv.unidad_academica = sp.unidad_academica AND
cppv.carrera = sp.carrera AND
cppv.plan_g2 = sp.plan AND
cppv.version = sp.version_actual
AND nsa.persona=cpp.persona AND nsa.propuesta=cppr.propuesta
;
Y modifique el archivo 04_sga_alumnos.sql de migración:
...
INSERT INTO sga_alumnos(alumno,legajo,persona,propuesta,plan_version,ubicacion,modalidad,cnt_readmisiones,regular,calidad)
SELECT
cpa.alumno,
sa.legajo,
cpp.persona,
cppr.propuesta,
cppv.plan_version,
cps.ubicacion,
'P', -- Presencial
sa.cnt_readmisiones,
sa.regular,
CASE
WHEN sa.calidad = 'A' THEN 'A'
WHEN sa.calidad = 'E' THEN 'P'
WHEN sa.calidad = 'P' THEN 'P'
WHEN sa.calidad = 'N' THEN 'P'
ELSE 'P'
END
FROM
mig.sga_alumnos as sa,
mig._cnv_pk_alumnos as cpa,
mig._cnv_pk_personas as cpp,
mig._cnv_pk_propuestas as cppr,
mig.sga_planes as sp,
mig._cnv_pk_planes_versiones as cppv,
mig._cnv_pk_sedes as cps
WHERE
cpa.tabla = 'sga_alumnos' AND
sa.unidad_academica = cpa.unidad_academica AND
sa.carrera = cpa.carrera AND
sa.legajo = cpa.legajo AND
cpp.unidad_academica = sa.unidad_academica AND
cpp.nro_inscripcion = sa.nro_inscripcion AND
cppr.unidad_academica = sa.unidad_academica AND
cppr.carrera = sa.carrera AND
cps.sede = sa.sede AND
sp.unidad_academica = sa.unidad_academica AND
sp.carrera = sa.carrera AND
sp.plan = sa.plan AND
cppv.unidad_academica = sp.unidad_academica AND
cppv.carrera = sp.carrera AND
cppv.plan_g2 = sp.plan AND
cppv.version = sp.version_actual
-- Modificado por Sergio Fernando Sanz
and not EXISTS(SELECT * FROM negocio.sga_alumnos WHERE persona=cpp.persona AND propuesta=cppr.propuesta)
;
...