sql Adecuaciónderendimiento para mostrar porcentaje de inasistenciaengráficenpanel de Prof

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql Adecuaciónderendimiento para mostrar porcentaje de inasistenciaengráficenpanel de Prof相关的知识,希望对你有一定的参考价值。

----------------------------INICIO PROCEDIMIENTO ------------------------
IF OBJECT_ID('spObtenerAsistenciaGruposProfesor', 'P') IS NOT NULL
      DROP PROC spObtenerAsistenciaGruposProfesor
GO

CREATE PROCEDURE spObtenerAsistenciaGruposProfesor
    @idProfesor INT ,
    @iFolioPeriodo BIGINT
/* --------------------------------------------------------------------------------------------------------------
FECHA		   |    AUTOR		|DESCRIPCION
28/Mar/2017    | Luis Bernal	|
--------------------------------------------------------------------------------------------------------------*/
AS
    BEGIN
        SET NOCOUNT ON;
        SET LANGUAGE spanish;
        SET DATEFORMAT MDY;
        SET DATEFIRST 7;
  --hugo
        SELECT  T.idAsignatura ,
                T.sAsignatura ,
                CONVERT(DOUBLE PRECISION, SUM(T.totalAsistentes))
                / CONVERT(DOUBLE PRECISION, SUM(T.totalInscritos)) * 100 AS dPorcentaje
        FROM    ( SELECT    COUNT(cta.iFolioInscripcion) AS totalAsistentes ,
                            ci.dFecha ,
                            cta.idAsignatura ,
                            ca.sAsignatura ,
                            dbo.fnTotalAlumnosGrupo(cta.idGrupo,
                                                    cgct.iFolioPeriodo) totalInscritos
                  FROM      dbo.Ctrl_Inasistencias ci
                            INNER JOIN dbo.Ctrl_TrayectoriaAcademica cta ON cta.iFolio = ci.iFolioTrayectoria
                            INNER JOIN dbo.Ctrl_GrupoClaseTentativo cgct ON cgct.idAsignatura = cta.idAsignatura
                                                              AND cgct.idGrupo = cta.idGrupo
                            INNER JOIN dbo.Cat_Asignaturas ca ON ca.idAsignatura = cta.idAsignatura
                            LEFT JOIN dbo.Ctrl_GrupoClaseTentativoCotitulares cgctc ON cgctc.iFolioGrupoClaseTentativo = cgct.iFolio
                  WHERE     cgct.iFolioPeriodo = @iFolioPeriodo
                            AND ( cgct.idProfesor = @idProfesor
                                  OR cgctc.idProfesor = @idProfesor
                                )
                            --AND dbo.fnTotalAlumnosGrupo(cta.idGrupo, cgct.iFolioPeriodo) > 0  ** Se comenta esta condición y se considera en la clausula HAVING para mejorar considerablemente el rendimiento 28/Mar/2017 LBV
                  GROUP BY  ci.dFecha ,
                            cta.idAsignatura ,
                            ca.sAsignatura ,
                            dbo.fnTotalAlumnosGrupo(cta.idGrupo, cgct.iFolioPeriodo)
				  HAVING  dbo.fnTotalAlumnosGrupo(cta.idGrupo, cgct.iFolioPeriodo) > 0
                ) AS T
        GROUP BY T.sAsignatura,T.idAsignatura
        ORDER BY T.sAsignatura

    END

以上是关于sql Adecuaciónderendimiento para mostrar porcentaje de inasistenciaengráficenpanel de Prof的主要内容,如果未能解决你的问题,请参考以下文章

sql spListarHorariosGlobalSinColumnas - Adecuaciónparacorregirconsecutivonuméricodecolore

sql BIT / IAM-1626 - spPanelAlumnoValidaInscAsignatura - Adecuacióndevalidaciones para checa

sql Adecuacióndebloque para crearInscripcionesacadémicascuandoexisten inscripciones admini

sql Adecuaciónparacalculo de indicadores de totales de alumnosenpágina校长

sql Adecuaciónderendimiento para mostrar porcentaje de inasistenciaengráficenpanel de Prof

sql BIT / IAM-1605 - Adecuaciónparamostrar asignaturas que no se hayan tomado sin thoughtfulra