Advertisement
jzgeorge

vicdenacmo

Sep 15th, 2017
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- View: esq_ceac_planclase.v_plan_clase_escuelas
  2.  
  3. -- DROP VIEW esq_ceac_planclase.v_plan_clase_escuelas;
  4.  
  5. CREATE OR REPLACE VIEW esq_ceac_planclase.v_plan_clase_escuelas AS
  6.  SELECT DISTINCT (
  7.         CASE
  8.             WHEN da.idpersonal IS NOT NULL THEN da.idpersonal::text
  9.             ELSE (( SELECT personal.idpersonal
  10.                FROM esq_distributivos.distribucion_academica
  11.                  JOIN esq_distributivos.distribucion_academica_compartida ON distribucion_academica.iddistributivo = distribucion_academica_compartida.iddistributivo
  12.                  JOIN esq_datos_personales.personal ON personal.idpersonal = distribucion_academica_compartida.idpersonal
  13.                  JOIN esq_distributivos.materia_unica_compartida_configuracion ON distribucion_academica_compartida.idconfiguracion = materia_unica_compartida_configuracion.idconfiguracion
  14.               WHERE materia_unica_compartida_configuracion.descripcion::text = 'TEORIA'::text AND materia_unica_compartida_configuracion.idperiodo = pd.idperiodo AND distribucion_academica_compartida.iddistributivo = da.iddistributivo
  15.              LIMIT 1))::text
  16.         END || (((((da.iddistributivo || abs(da.idmateria_unica)::text) || m.idmateria::text) || pd.idperiodo::text) || pd.idescuela::text) || me.idmalla::text))::numeric AS idregistro,
  17.     pd.idperiodo,
  18.     pa.nombre AS nperiodo,
  19.     f.idfacultad,
  20.     f.nombre AS nfacultad,
  21.     pd.idescuela,
  22.     e.nombre AS nescuela,
  23.     me.idmalla,
  24.     da.idmateria_unica,
  25.     da.idparalelo,
  26.     ( SELECT pa_1.nombre
  27.            FROM esq_distributivos.paralelo pa_1
  28.           WHERE pa_1.idparalelo = da.idparalelo) AS paralelo,
  29.     ( SELECT DISTINCT materia.nombre
  30.            FROM esq_mallas.materia
  31.           WHERE materia.idmateria = m.idmateria AND materia.idtipo_perfil_profesional = m.idtipo_perfil_profesional) AS nombre,
  32.     m.idtipo_perfil_profesional,
  33.     m.idtipo_organizacion_curricular,
  34.     ( SELECT materia_unica.iddepartamento
  35.            FROM esq_distributivos.materia_unica
  36.           WHERE materia_unica.idmateria_unica = da.idmateria_unica) AS iddepartamento,
  37.     ( SELECT departamento.nombre
  38.            FROM esq_distributivos.materia_unica
  39.              JOIN esq_distributivos.departamento ON materia_unica.iddepartamento = departamento.iddepartamento
  40.           WHERE materia_unica.idmateria_unica = da.idmateria_unica) AS ndepartamento,
  41.     ( SELECT departamento.idfacultad
  42.            FROM esq_distributivos.materia_unica
  43.              JOIN esq_distributivos.departamento ON materia_unica.iddepartamento = departamento.iddepartamento
  44.           WHERE materia_unica.idmateria_unica = da.idmateria_unica) AS idfacultadmateria,
  45.     ( SELECT mu.nombre
  46.            FROM esq_distributivos.materia_unica mu
  47.           WHERE mu.idmateria_unica = da.idmateria_unica) AS nmateria_unica,
  48.     ( SELECT mm.creditos
  49.            FROM esq_mallas.malla_materia_nivel mm
  50.           WHERE mm.idmalla = pd.idmalla AND mm.idescuela = pd.idescuela AND pd.idmateria = mm.idmateria) AS creditos_asignatura,
  51.         CASE
  52.             WHEN da.idpersonal IS NOT NULL THEN da.idpersonal
  53.             ELSE ( SELECT personal.idpersonal
  54.                FROM esq_distributivos.distribucion_academica
  55.                  JOIN esq_distributivos.distribucion_academica_compartida ON distribucion_academica.iddistributivo = distribucion_academica_compartida.iddistributivo
  56.                  JOIN esq_datos_personales.personal ON personal.idpersonal = distribucion_academica_compartida.idpersonal
  57.                  JOIN esq_distributivos.materia_unica_compartida_configuracion ON distribucion_academica_compartida.idconfiguracion = materia_unica_compartida_configuracion.idconfiguracion
  58.               WHERE materia_unica_compartida_configuracion.descripcion::text = 'TEORIA'::text AND materia_unica_compartida_configuracion.idperiodo = pd.idperiodo AND distribucion_academica_compartida.iddistributivo = da.iddistributivo
  59.              LIMIT 1)
  60.         END AS idpersonal_docente,
  61.         CASE
  62.             WHEN da.idpersonal IS NOT NULL THEN ( SELECT (((COALESCE(personal.apellido1, ''::character varying)::text || ' '::text) || COALESCE(personal.apellido2, ''::character varying)::text) || ' '::text) || COALESCE(personal.nombres, ''::character varying)::text AS nom
  63.                FROM esq_datos_personales.personal
  64.               WHERE personal.idpersonal = da.idpersonal)
  65.             ELSE ( SELECT concat(personal.apellido1, ' ', personal.apellido2, ' ', personal.nombres) AS nombre_docente_teoria
  66.                FROM esq_distributivos.distribucion_academica
  67.                  JOIN esq_distributivos.distribucion_academica_compartida ON distribucion_academica.iddistributivo = distribucion_academica_compartida.iddistributivo
  68.                  JOIN esq_datos_personales.personal ON personal.idpersonal = distribucion_academica_compartida.idpersonal
  69.                  JOIN esq_distributivos.materia_unica_compartida_configuracion ON distribucion_academica_compartida.idconfiguracion = materia_unica_compartida_configuracion.idconfiguracion
  70.               WHERE materia_unica_compartida_configuracion.descripcion::text = 'TEORIA'::text AND materia_unica_compartida_configuracion.idperiodo = pd.idperiodo AND distribucion_academica_compartida.iddistributivo = da.iddistributivo
  71.              LIMIT 1)
  72.         END AS docente,
  73.     me.nombre AS nmalla,
  74.     ( SELECT mm.materia_virtual
  75.            FROM esq_mallas.malla_materia_nivel mm
  76.           WHERE mm.idmalla = pd.idmalla AND mm.idescuela = pd.idescuela AND pd.idmateria = mm.idmateria) AS es_virtual,
  77.  
  78. CASE
  79.             WHEN pl.idregistro IS NOT NULL THEN
  80.             CASE
  81.                 WHEN (( SELECT count(tbl_plc_unidades_seguimiento.idregistro) AS count
  82.                    FROM esq_ceac_planclase.tbl_plc_unidades_seguimiento
  83.                   WHERE tbl_plc_unidades_seguimiento.idplanclase = pl.idregistro AND tbl_plc_unidades_seguimiento.estado = 'ED'::text)) > 0 THEN 'ED'::text
  84.                 ELSE 'FN'::text
  85.             END
  86.             ELSE 'NE'::text
  87.         END AS estado,
  88.         CASE
  89.             WHEN pl.idregistro IS NOT NULL THEN pl.idregistro
  90.             ELSE 0::numeric
  91.         END AS idplanclase,
  92.     da.iddistributivo,
  93.     ( SELECT count(t_1.idpersonal) AS count
  94.            FROM ( SELECT DISTINCT id.idpersonal
  95.                    FROM esq_inscripciones.inscripcion_detalle id
  96.                   WHERE id.iddistributivo = da.iddistributivo AND id.anulado::text = 'N'::text AND (id.idperiodo IN ( SELECT pa_1.idperiodo
  97.                            FROM esq_periodos_academicos.periodo_academico pa_1
  98.                              JOIN esq_distributivos.departamento_periodo dp_1 ON dp_1.idperiodo = pa_1.idperiodo
  99.                           WHERE dp_1.id_departamento_periodo = da.iddepartamento_periodo))) t_1) AS num_estudiantes_registrados
  100.    FROM esq_inscripciones.inscripcion_detalle pd
  101.      JOIN esq_inscripciones.inscripcion i ON i.idinscripcion = pd.idinscripcion AND i.idperiodo = pd.idperiodo AND i.idescuela = pd.idescuela AND i.idpersonal = pd.idpersonal
  102.      JOIN esq_distributivos.distribucion_academica da ON da.iddistributivo = pd.iddistributivo AND da.habilitado::text = 'S'::text
  103.      JOIN esq_inscripciones.escuela e ON e.idescuela = pd.idescuela
  104.      JOIN esq_inscripciones.facultad f ON f.idfacultad = e.idfacultad
  105.      JOIN esq_periodos_academicos.periodo_academico pa ON pa.idperiodo = pd.idperiodo
  106.      JOIN esq_mallas.materia m ON m.idmateria = pd.idmateria
  107.      JOIN esq_mallas.malla_escuela me ON me.idmalla = pd.idmalla
  108.      LEFT JOIN esq_ceac_planclase.tbl_plc_planclase pl ON pl.iddistributivo = da.iddistributivo::numeric
  109.   ORDER BY (
  110.         CASE
  111.             WHEN pl.idregistro IS NOT NULL THEN
  112.             CASE
  113.                 WHEN (( SELECT count(tbl_plc_unidades_seguimiento.idregistro) AS count
  114.                    FROM esq_ceac_planclase.tbl_plc_unidades_seguimiento
  115.                   WHERE tbl_plc_unidades_seguimiento.idplanclase = pl.idregistro AND tbl_plc_unidades_seguimiento.estado = 'ED'::text)) > 0 THEN 'ED'::text
  116.                 ELSE 'FN'::text
  117.             END
  118.             ELSE 'NE'::text
  119.         END );
  120.  
  121. ALTER TABLE esq_ceac_planclase.v_plan_clase_escuelas
  122.   OWNER TO ceac_analitico;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement