Alcance encuesta

Hola hicimos una encuesta para ingresantes y reinscriptos el tema es que cuando vamos a ver solo les aparece la encuesta a los ingresantes, mirando la base encontré el procedure sp_enc_crea_u no se si es el que llena la tabla de los alumnos a encuestar, pero si es ese, noto que dentro de el hay un if donde toma solo una parte de la población.

Ese proceso (sp_enc_crea_u) genera una sola encuesta por persona
Tenes que ver que seleccionaron en la pantalla y dependiendo de eso es a quien va a encuestar:
Quizas solo seleccionaron Inscriptos - (AI) y no Inscriptos/reinscriptos (IR)
Fijate en la tabla gde_encues_alcance, el campo responderan que valor tiene:

Responderan (Alumnos):
AI = Alumnos inscriptos a carreras en los años académicos seleccionados
AR = Alumnos reinscriptos a carreras en los años académicos seleccionados
IR = Alumnos inscriptos/reinscriptos en los años académicos seleccionados
CA = Alumnos de carreras seleccionadas.
MA = Inscriptos a cursar de alguna de las materias del/los periodos lectivos (Incluya a seleccion de carreras)
CO = Inscriptos a cursar de alguna de las comisiones seleccionadas (Incluye seleccion de carreras y materias.)
EG = Egresados de una o varias carreras
PE = v2.9.2 PERSONALIZADO POR LA INSTITUCION. Se ejecuta el proceso sp_enc_personaliza
el cual dispara los diferentes procesos que estan personalizados. Cada institucion debe personalizar este procedure agregando
los procesos nuevos que creen para recuperar diferentes grupos de alumnos…
Estos procesos deben llenar la tabla temporal “_Tencuestado_aux” con las personas a responder la encuesta.

Responderan (Docentes):
TO = Todos los docentes.

Para solucionarlo ahora hicimos una encuesta que solo abarque los reinscripcto.
Pero te adjunto las capturas del alcance de la encuesta original, en la tabla de alcance esta en IR :

alcance 1
encuesta 1
titulo Encuesta EMED sobre PEDCO
descripcion
encuestado A
unidad_academica EMED
anio_academico 2020
periodo_lectivo
turno_examen
fecha_desde 01/04/2020
fecha_hasta 01/06/2020
filtra_por_comisio N
filtra_por_docente N
filtra_por_carrera N
filtra_por_materia N
filtra_por_rol N
filtra_por_anio N
materia_regul N
materia_aprob N
kolla_id_habilita+ 12
kolla_password 5fb5a1c085634df94f43b7284bd14b67
kolla_sincronizar N
generar U
responderan IR
obligatoria S
sanciona N
anonima S
stored_procedure

La parte del procedure que me entra en dudas es:

[b]IF c_responderan = ‘AI’ OR c_responderan = ‘IR’ THEN
– ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
– Alumnos inscriptos a carreras o inscriptos/reinscriptos de uno o varios años academicos.
– ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INSERT INTO _Tencuestado_aux (unidad_academica, nro_inscripcion)
SELECT DISTINCT sga_alumnos.unidad_academica, sga_alumnos.nro_inscripcion
FROM sga_periodo_insc,
sga_carrera_aspira,
sga_situacion_asp,
sga_alumnos
WHERE (i_alcance_anio = 0 OR sga_periodo_insc.anio_academico IN (SELECT anio_academico FROM gde_alcance_anio WHERE alcance = pAlcance))
AND (sga_situacion_asp.resultado_asp = ‘I’ OR sga_carrera_aspira.situacion_asp = ‘IC’)
AND sga_carrera_aspira.periodo_inscripcio = sga_periodo_insc.periodo_inscripcio
AND sga_carrera_aspira.situacion_asp = sga_situacion_asp.situacion_asp
AND sga_carrera_aspira.unidad_academica = sga_alumnos.unidad_academica
AND sga_carrera_aspira.carrera = sga_alumnos.carrera
AND sga_carrera_aspira.nro_inscripcion = sga_alumnos.nro_inscripcion;

ELIF c_responderan = 'AR' OR c_responderan = 'IR' THEN
   
   -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
   -- Alumnos reinscriptos a carreras o inscriptos/reinscriptos
   -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
   INSERT INTO _Tencuestado_aux (unidad_academica, nro_inscripcion)
        SELECT DISTINCT sga_alumnos.unidad_academica, sga_alumnos.nro_inscripcion
           FROM sga_reinscripcion, 
                sga_alumnos
          WHERE sga_reinscripcion.anio_academico IN (SELECT anio_academico FROM gde_alcance_anio WHERE alcance = pAlcance)
            AND sga_reinscripcion.unidad_academica = sga_alumnos.unidad_academica
            AND sga_reinscripcion.carrera = sga_alumnos.carrera
            AND sga_reinscripcion.legajo = sga_alumnos.legajo;[/b]

alcance1.png

alcance1.png

alcance2.png

alcance2.png

Tenés razon, esta mal ese IF porque entra por una sola condición.

Debería ser asi:

IF c_responderan = ‘AI’ OR c_responderan = ‘IR’ THEN
– Alumnos inscriptos a carreras o inscriptos/reinscriptos de uno o varios años academicos.

END IF;

IF c_responderan = ‘AR’ OR c_responderan = ‘IR’ THEN
– Alumnos reinscriptos a carreras o inscriptos/reinscriptos

END IF;

IF c_responderan = ‘CA’ THEN

Gracias Alejandro anduvo todo bien, lo modificamos y luego hacemos un racalcular para agregar los alumnos que faltaban.