Error en Script postcontrol de Módulo Actas de Migración desde sistemas Externos

Hola que tal?

Les consulto lo siguiente.
Estamos migrando desde un sistema externo, ya migramos el Módulo Actas,
cuando llegamos a los PosControles nos salta diferencia en los siguientes datos:

sga_actas_detalle Error: Cantidad de alumnos en actas de promocion no coninciden… 459.00 5,071.00

Efectivamente, 459 es la cifra correcta a migrar, pero 5071 que nos sale que migró.

Haciendo un control de lo que migró pareciera solo migró los 459, acá les remito la consulta que ejecutamos:
select * from negocio.sga_actas_detalle ad, negocio.sga_actas a where a.id_acta = ad.id_acta and a.origen = ‘P’ and a.nro_acta like ‘2016-ESET%’
(Todas las actas empiezan con esa numeración 2016-ESET, esa consulta nos devuelve los 459).

Sin embargo, nos fijamos en la consulta del script de PosControl que es la que arroja los 5071, que es la siguiente. y analizando lo que devuelve esa consulta, pidiendo nos muestre los resultados ordenados por acta y nro_documento, vemos que nos devuelve lo siguiente, les copio 2 renglones para ver donde está el problema,
ahí se vé que repite a la persona con nro documento 43113106, los renglones son iguales, pero varia en la columna alumno, un renglón pone 118412
y el otro con 118737. En donde 118412 es el correcto, y 118737 corresponde a otro alumno.

Los próximos 2 renglones sucede lo mismo, pero con el otro alumno, pone el nro de documento 44210548 que es del alumno 118737, pero luego pone ese mismo documento en otro renglón pero con alumno 118412 que es el otro alumno.

Parecería que al recorrer las tablas faltaría de alguna forma chequear que la persona/alumno sean los mismos en las tablas que recorre. Puede ser?

Va el ejemplo de los primeros 2 renglones y luego el SQL: (SON SCRIPTS DE LA VERSIÓN 3.16.2, ME FIJÉ LA DEL 3.17.0 Y PARECEN ESTAR IGUAL)
El resto de los renglones pasa lo mismo, si hay 5 alumnos en el acta, me devuelve 25 (5x5), si son 2, 4, si son 3 9 y asi todo el resto de los casos)

“P”;“2016-ESET-EP-00000001”;“2016-12-01”;20;“2016-ESET-EP”;1;“2016-1-A-203-E1001”;2016;“Anual”;“203-
1001”;0;“43113106”;178;285;;;;0.00;;“”;4;“6”;“A”;“”;44139;“2016-1-A-203-E1001”;709604;;;41;7196;“Lengua y Literatura”;“203-E1001”;6892;“Anual”;11;;;0;“S”;2016;“2016-02-29”;“2016-12-30”;1457;“Anual”;“2016-02-29”;“2016-12-30”;“2016-02-28”;“2016-12-30”;“2016-12-30”;709596;1;“Anual”;“Anual”;1;“A”;“N”;“S”;“”;255750;“2016-ESET-EP-00000001”;“P”;“N”;438651;44139;;“2016-12-01”;“2016-12-01”;“”;“”;;1;1;1;20;;“”;“C”;“N”;255750;118412;2;285;“2016-12-01”;“”;1;2;0.00;4;“6”;“A”;;“N”;“”;“A”

“P”;“2016-ESET-EP-00000001”;“2016-12-01”;20;“2016-ESET-EP”;1;“2016-1-A-203-E1001”;2016;“Anual”;“203-E1001”;0;“43113106”;178;285;;;;0.00;;“”;4;“6”;“A”;“”;44139;“2016-1-A-203-E1001”;709604;;;41;7196;“Lengua y Literatura”;“203-E1001”;6892;“Anual”;11;;;0;“S”;2016;“2016-02-29”;“2016-12-30”;1457;“Anual”;“2016-02-29”;“2016-12-30”;“2016-02-28”;“2016-12-30”;“2016-12-30”;709596;1;“Anual”;“Anual”;1;“A”;“N”;“S”;“”;255750;“2016-ESET-EP-00000001”;“P”;“N”;438651;44139;;“2016-12-01”;“2016-12-01”;“”;“”;;1;1;1;20;;“”;“C”;“N”;255750;118737;2;285;“2016-12-01”;“”;1;1;0.00;4;“8”;“A”;;“N”;“”;“A”

SQL:

SELECT count(*) INTO cnt_actas_det_g3
FROM ext.mig_acta_cursada_promocion as mig,
vw_comisiones as com,
sga_actas,
sga_actas_detalle
WHERE mig.origen = ‘P’
AND mig.comision_nombre = com.comision_nombre
AND mig.anio_academico = com.anio_academico
AND mig.periodo_lectivo_nombre = com.periodo_lectivo_nombre
AND mig.actividad_codigo = com.elemento_codigo

AND sga_actas.comision = com.comision
AND sga_actas.origen = ‘P’
AND sga_actas.tipo_acta = ‘N’
AND sga_actas.estado = ‘C’
AND sga_actas_detalle.id_acta = sga_actas.id_acta;

Saludos y muchas gracias.

Hola agrego algo más.

¿En la clausula WHERE del SELECT no deberían igualarse los alumnos de la tabla ext.mig_acta_cursada_promocion con los de la tabla sga_actas_detalle?
Quzás por eso se multiplican los datos.

En ext.mig_acta_cursada_promocion están identificados por nro_documento, y en sga_actas_detalle por alumno (id del alumno).

Saludos.-

Martin, por lo que veo, estos dos renglones son iguales. Los dos corresponden a la misma persona (dni = 43113106), para el acta de promocion nro 2016-ESET-EP-00000001 del 01/12/2016, libro nro 2016-ESET-EP, pero para dos actividades diferentes.
diferentes 203-1001 y 203-E1001

¿Estos son renglones del archivo mig_acta_cursada_promocion.csv ?

“P”;“2016-ESET-EP-00000001”;“2016-12-01”;20;“2016-ESET-EP”;1;“2016-1-A-203-E1001”;2016;“Anual”;“203-1001”
;0;“43113106”;178;285;;;;0.00;;“”;4;“6”;“A”;“”;44139;“2016-1-A-203-E1001”;709604;;;41;7196;“Lengua y Literatura”;“203-E1001”;6892;“Anual”;11;;;0;“S”;2016;“2016-02-29”;“2016-12-30”;1457;“Anual”;“2016-02-29”;“2016-12-30”;“2016-02-28”;“2016-12-30”;“2016-12-30”;709596;1;“Anual”;“Anual”;1;“A”;“N”;“S”;“”;255750;“2016-ESET-EP-00000001”;“P”;“N”;438651;44139;;“2016-12-01”;“2016-12-01”;“”;“”;;1;1;1;20;;“”;“C”;“N”;255750;118412;2;285;“2016-12-01”;“”;1;2;0.00;4;“6”;“A”;;“N”;“”;“A”

“P”;“2016-ESET-EP-00000001”;“2016-12-01”;20;“2016-ESET-EP”;1;“2016-1-A-203-E1001”;2016;“Anual”;“203-E1001”
;0;“43113106”;178;285;;;;0.00;;“”;4;“6”;“A”;“”;44139;“2016-1-A-203-E1001”;709604;;;41;7196;“Lengua y Literatura”;“203-E1001”;6892;“Anual”;11;;;0;“S”;2016;“2016-02-29”;“2016-12-30”;1457;“Anual”;“2016-02-29”;“2016-12-30”;“2016-02-28”;“2016-12-30”;“2016-12-30”;709596;1;“Anual”;“Anual”;1;“A”;“N”;“S”;“”;255750;“2016-ESET-EP-00000001”;“P”;“N”;438651;44139;;“2016-12-01”;“2016-12-01”;“”;“”;;1;1;1;20;;“”;“C”;“N”;255750;118737;2;285;“2016-12-01”;“”;1;1;0.00;4;“8”;“A”;;“N”;“”;“A”

Podes enviar los datos de ese archivo solo de este nro de documento: 43113106
Para ver como estas armando ese archivo.

2

Hola Alejandro,

van de nuevo las salidas, creo salio cortado nomas

“P”;“2016-ESET-EP-00000001”;“2016-12-01”;20;“2016-ESET-EP”;1;“2016-1-A-203-E1001”;2016;“Anual”;“203-E1001”;0;“43113106”;178;285;;;;0.00;;“”;4;“6”;“A”;“”;44139;“2016-1-A-203-E1001”;709604;;;41;7196;“Lengua y Literatura”;“203-E1001”;6892;“Anual”;11;;;0;“S”;2016;“2016-02-29”;“2016-12-30”;1457;“Anual”;“2016-02-29”;“2016-12-30”;“2016-02-28”;“2016-12-30”;“2016-12-30”;709596;1;“Anual”;“Anual”;1;“A”;“N”;“S”;“”;255750;“2016-ESET-EP-00000001”;“P”;“N”;438651;44139;;“2016-12-01”;“2016-12-01”;“”;“”;;1;1;1;20;;“”;“C”;“N”;255750;118412;2;285;“2016-12-01”;“”;1;2;0.00;4;“6”;“A”;;“N”;“”;“A”

“P”;“2016-ESET-EP-00000001”;“2016-12-01”;20;“2016-ESET-EP”;1;“2016-1-A-203-E1001”;2016;“Anual”;“203-E1001”;0;“43113106”;178;285;;;;0.00;;“”;4;“6”;“A”;“”;44139;“2016-1-A-203-E1001”;709604;;;41;7196;“Lengua y Literatura”;“203-E1001”;6892;“Anual”;11;;;0;“S”;2016;“2016-02-29”;“2016-12-30”;1457;“Anual”;“2016-02-29”;“2016-12-30”;“2016-02-28”;“2016-12-30”;“2016-12-30”;709596;1;“Anual”;“Anual”;1;“A”;“N”;“S”;“”;255750;“2016-ESET-EP-00000001”;“P”;“N”;438651;44139;;“2016-12-01”;“2016-12-01”;“”;“”;;1;1;1;20;;“”;“C”;“N”;255750;118737;2;285;“2016-12-01”;“”;1;1;0.00;4;“8”;“A”;;“N”;“”;“A”

Por lo que veo son dos registros iguales. ¿Puede ser?
Si es asi estas armando mal el archivo que carga la tabla de migracion mig_acta_cursada_promocion.csv

Por otro lado, no tendras duplicada las personas?
Las siguientes consultas devuelven solo un registro o mas de uno?

SELECT * FROM mdp_personas_documentos as d join mdp_personas as p on p.persona = d.persona WHERE d.nro_documento = '43113106'
SELECT * FROM mdp_personas_documentos as d join mdp_personas as p on p.document_principal = d.documento WHERE d.nro_documento = '43113106'