sql BIT / IAM-1823 - spListarHorariosGlobalSinColumnas - Se agrega alacreacióndecolor el id

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql BIT / IAM-1823 - spListarHorariosGlobalSinColumnas - Se agrega alacreacióndecolor el id相关的知识,希望对你有一定的参考价值。


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

CREATE PROCEDURE [dbo].[spListarHorariosGlobalSinColumnas]
/* --------------------------------------------------------------------------------------------------------------
FECHA		   |		AUTOR		|	DESCRIPCION
00/00/2015     | Leonardo Dominguez	|
19/12/2016	   | Christian Lopez	|
23/03/2017	   | Luis Bernal		|
30/03/2017	   | Luis Bernal		| Se modificó para corregir el consecutivo de numeros y colores ya que si para una asignatura había dos aulas para días diferentes se saltaba el consecutivo.
03/07/2017	   | Luis Bernal		| BIT/IAM-1823 - Se agrega a la creación de color el idGrupo para realizar la separación de asignaturas considerando precisamente el grupo.
--------------------------------------------------------------------------------------------------------------*/
--@Variables INT
    @idGrupo SMALLINT ,
    @iFolioPeriodo BIGINT ,
    @idAulaF SMALLINT ,
    @idAsignaturaF SMALLINT ,
    @idAlumnoF INT ,
    @idProfesorF INT
AS
    BEGIN
        SET NOCOUNT ON;
        SET NOCOUNT ON;
        SET LANGUAGE spanish;
        SET DATEFORMAT MDY;
        SET DATEFIRST 7;
   --CONTENIDO PROCEDIMIENTO


   
--DECLARE @idGrupo SMALLINT = 91 ,
--    @iFolioPeriodo BIGINT = 11 ,
--    @idAulaF SMALLINT = 0 ,
--    @idAsignaturaF SMALLINT = 0 ,
--    @idAlumnoF INT = 0 ,
--    @idProfesorF INT = 0

   
/*------------------------------------------------------------------------------------------------------------------------------------*/

        DECLARE @idHorarioClase SMALLINT ,
            @idHorarioClaseAux SMALLINT = 0 ,
            @sHorario VARCHAR(50) ,
            @sHorarioAux VARCHAR(50) ,
            @iDia TINYINT ,
            @sAsignatura VARCHAR(150) ,
            @sAula VARCHAR(50) ,
            @sProfesor VARCHAR(150) ,
            @iFolioGrupoClases BIGINT
			



        DECLARE @TColores TABLE
            (
              iNumero TINYINT ,
              sColor VARCHAR(15)
            )
        INSERT  INTO @TColores
                ( iNumero ,
                  sColor
                )
                SELECT  fstc.iNo ,
                        fstc.sCodigoColor
                FROM    dbo.fnSis_TablaColores('500', 3) AS fstc



        DECLARE @TR TABLE
            (
              idHorarioClase SMALLINT ,
              sHorario VARCHAR(150) ,
              iDia TINYINT ,
              idAsignatura SMALLINT ,
              sAsignatura VARCHAR(150) ,
              idAula SMALLINT ,
              sAula VARCHAR(50) ,
              idProfesor INT ,
              sProfesor VARCHAR(150) ,
              iFolioGrupoClases BIGINT ,
              sColor VARCHAR(15) ,
              iColor SMALLINT ,
              dHoraIni DATETIME ,
              dHoraFin DATETIME ,
              sGrupo VARCHAR(150) ,
			  idGrupo SMALLINT
            )

        IF @idAlumnoF = 0
            BEGIN
                INSERT  INTO @TR
                        ( idHorarioClase ,
                          sHorario ,
                          iDia ,
                          idAsignatura ,
                          sAsignatura ,
                          idAula ,
                          sAula ,
                          idProfesor ,
                          sProfesor ,
                          iFolioGrupoClases ,
                          sColor ,
                          dHoraIni ,
                          dHoraFin ,
                          sGrupo,
						  idGrupo
                        )
                        SELECT  chc.idHorarioClase ,
                                REPLACE(CAST(CAST(chc.dHoraInicio AS TIME) AS VARCHAR(50)),
                                        ':00.0000000', '') + ' - '
                                + REPLACE(CAST(CAST(chc.dHoraFin AS TIME) AS VARCHAR(50)),
                                          ':00.0000000', '') AS sHorario ,
                                cgcd.iDia ,
                                ca.idAsignatura ,
                                ca.sAsignatura ,
                                ca2.idAula ,
                                ca2.sAula ,
                                cgc.idProfesor ,
                                cp.sApellidoP + ' ' + cp.sApellidoM + ' '
                                + cp.sNombre AS sProfesor ,
                                cgcd.iFolioGrupoClases ,
                                '' ,
                                chc.dHoraInicio ,
                                chc.dHoraFin ,
                                cg.sNombre,
								cg.idGrupo
                        FROM    dbo.Cat_HorarioClase AS chc
                                LEFT JOIN dbo.Ctrl_GrupoClasesDet AS cgcd ON cgcd.idHorarioClase = chc.idHorarioClase
                                INNER JOIN dbo.Ctrl_GrupoClases AS cgc ON cgc.iFolio = cgcd.iFolioGrupoClases
                                                              AND ( cgc.idGrupo = @idGrupo
                                                              OR @idGrupo = 0
                                                              )
                                                              AND cgc.iFolioPeriodo = @iFolioPeriodo
                                INNER JOIN dbo.Ctrl_Grupos AS cg ON cg.idGrupo = cgc.idGrupo
                                INNER JOIN dbo.Cat_Asignaturas AS ca ON ca.idAsignatura = cgc.idAsignatura
                                INNER JOIN dbo.Cat_Profesores AS cp ON cp.idProfesor = cgc.idProfesor
                                INNER JOIN dbo.Cat_Aulas AS ca2 ON ca2.idAula = cgcd.idAula
                        WHERE   ( @idAulaF = 0
                                  OR ca2.idAula = @idAulaF
                                )
                                AND ( @idProfesorF = 0
                                      OR cgc.idProfesor = @idProfesorF
                                    )
                                AND ( @idAsignaturaF = 0
                                      OR ca.idAsignatura = @idAsignaturaF
                                    )
                        ORDER BY chc.dHoraInicio ,
                                chc.dHoraFin ,
                                iDia

            END
        ELSE
            BEGIN
                INSERT  INTO @TR
                        ( idHorarioClase ,
                          sHorario ,
                          iDia ,
                          idAsignatura ,
                          sAsignatura ,
                          idAula ,
                          sAula ,
                          idProfesor ,
                          sProfesor ,
                          iFolioGrupoClases ,
                          sColor ,
                          dHoraIni ,
                          dHoraFin ,
                          sGrupo,
						  idGrupo
                        )
                        SELECT  chc.idHorarioClase ,
                                REPLACE(CAST(CAST(chc.dHoraInicio AS TIME) AS VARCHAR(50)),
                                        ':00.0000000', '') + ' - '
                                + REPLACE(CAST(CAST(chc.dHoraFin AS TIME) AS VARCHAR(50)),
                                          ':00.0000000', '') AS sHorario ,
                                cgcd.iDia ,
                                ca.idAsignatura ,
                                ca.sAsignatura ,
                                ca2.idAula ,
                                ca2.sAula ,
                                cgc.idProfesor ,
                                cp.sApellidoP + ' ' + cp.sApellidoM + ' '
                                + cp.sNombre AS sProfesor ,
                                cgcd.iFolioGrupoClases ,
                                '' ,
                                chc.dHoraInicio ,
                                chc.dHoraFin ,
                                cg.sNombre,
								cg.idGrupo
                        FROM    dbo.Cat_HorarioClase AS chc
                                LEFT JOIN dbo.Ctrl_GrupoClasesDet AS cgcd ON cgcd.idHorarioClase = chc.idHorarioClase
                                INNER JOIN dbo.Ctrl_GrupoClases AS cgc ON cgc.iFolio = cgcd.iFolioGrupoClases
                                                              --AND ( cgc.idGrupo = @idGrupo
                                                              --OR @idGrupo = 0
                                                              --)
                                                              AND cgc.iFolioPeriodo = @iFolioPeriodo
                                INNER JOIN dbo.Ctrl_Grupos AS cg ON cg.idGrupo = cgc.idGrupo
                                INNER JOIN dbo.Cat_Asignaturas AS ca ON ca.idAsignatura = cgc.idAsignatura
                                INNER JOIN dbo.Cat_Profesores AS cp ON cp.idProfesor = cgc.idProfesor
                                INNER JOIN dbo.Cat_Aulas AS ca2 ON ca2.idAula = cgcd.idAula
                                INNER JOIN dbo.Ctrl_TrayectoriaAcademica AS cta ON cta.idAsignatura = cgc.idAsignatura
                                                              AND cta.idGrupo = cg.idGrupo
                                                              --AND cta.idPlanEstudios = cg.idPlanEstudios -- se quito para que traiga las inscripciones en otro plan de estudios por lo de tronco
                                INNER JOIN dbo.Ctrl_Inscripciones AS ci ON ci.iFolio = cta.iFolioInscripcion
                                                              AND ci.iFolioPeriodo = cgc.iFolioPeriodo
                        WHERE   ( @idAulaF = 0
                                  OR ca2.idAula = @idAulaF
                                )
                                AND ( @idProfesorF = 0
                                      OR cgc.idProfesor = @idProfesorF
                                    )
                                AND ( @idAsignaturaF = 0
                                      OR ca.idAsignatura = @idAsignaturaF
                                    )
                                AND ( @idGrupo = 0
                                      OR cgc.idGrupo = @idGrupo
                                    )
                                AND ci.idAlumno = @idAlumnoF
                        ORDER BY chc.dHoraInicio ,
                                chc.dHoraFin ,
                                iDia
            END


        
        DECLARE @idAsignaturaColor SMALLINT ,
            @sAsignaturaColor VARCHAR(150) ,
            @idAulaColor SMALLINT ,
            @sAulaColor VARCHAR(50) ,
			@idGrupoColor SMALLINT,
			@sGrupoColor VARCHAR(50),
            @idProfesorColor INT ,
            @sProfesorColor VARCHAR(150) ,
            @iContColor TINYINT = 1 ,
            @idAsignaturaAuxColor SMALLINT = 0 ,
            @idAulaAuxColor SMALLINT = 0 ,
            @idProfesorAuxColor INT = 0,
			@idGrupoAuxColor INT = 0
		/*------------------------------------------------------------------------------------------------------------------------------------*/
		
				
        DECLARE cCursorColores CURSOR LOCAL
        FOR
            SELECT DISTINCT
                    t.idAsignatura ,
                    t.sAsignatura ,
                    t.idAula ,
                    t.sAula ,
                    t.idProfesor ,
                    t.sProfesor,
					t.idGrupo,		-- BIT/IAM-1823
					t.sGrupo		-- BIT/IAM-1823
            FROM    @TR AS t
    --ORDER BY t.dHoraIni ,
    --        t.dHoraFin ,
    --        t.iDia
				
        OPEN cCursorColores
        FETCH cCursorColores INTO @idAsignaturaColor, @sAsignaturaColor,
            @idAulaColor, @sAulaColor, @idProfesorColor, @sProfesorColor,
			@idGrupoColor, @sGrupoColor											-- BIT/IAM-1823
		
        WHILE ( @@FETCH_STATUS = 0 )
            BEGIN

                IF @idAsignaturaColor <> @idAsignaturaAuxColor
                    --OR @idAulaColor <> @idAulaAuxColor	--*Se comenta esta condición ya que al reconocer diferentes aulas para una misma materia se saltaba consecutivo de colores 30/Mar/2017
					OR @idGrupoColor <> @idGrupoAuxColor	-- BIT/IAM-1823
                    OR @idProfesorColor <> @idProfesorAuxColor
                    BEGIN
                        DECLARE @sColorColor VARCHAR(15) = ( SELECT
                                                              tc.sColor
                                                             FROM
                                                              @TColores AS tc
                                                             WHERE
                                                              tc.iNumero = @iContColor
                                                           )
				
                        UPDATE  @TR
                        SET     sColor = @sColorColor ,
                                iColor = @iContColor
                        WHERE   idAsignatura = @idAsignaturaColor
                                --AND idAula = @idAulaColor --*Se comenta esta condición ya que para materias con diferente aula se mostraban como diferentes materias y por ende con diferente color 23/Mar/2017
								AND idGrupo = @idGrupoColor	-- BIT/IAM-1823
                                AND idProfesor = @idProfesorColor
				
                        SET @iContColor = @iContColor + 1
                        SET @idAsignaturaAuxColor = @idAsignaturaColor
                        SET @idAulaAuxColor = @idAulaColor
                        SET @idProfesorAuxColor = @idProfesorColor
						SET @idGrupoAuxColor = @idGrupoColor
                    END
				
					
                FETCH cCursorColores INTO @idAsignaturaColor,
                    @sAsignaturaColor, @idAulaColor, @sAulaColor,
                    @idProfesorColor, @sProfesorColor, 
					@idGrupoColor, @sGrupoColor		-- BIT/IAM-1823
            END
		
        CLOSE cCursorColores
        DEALLOCATE cCursorColores
		/*------------------------------------------------------------------------------------------------------------------------------------*/

        SELECT targh.idHorarioClase
             , targh.sHorario
             , targh.iDia
             , targh.idAsignatura
             , targh.sAsignatura
             , targh.idAula
             , targh.sAula
             , targh.idProfesor
             , targh.sProfesor
             , targh.iFolioGrupoClases
             , targh.sColor
             , targh.iColor
             , targh.sGrupo
             , targh.idGrupo
             , targh.dFechaI
             , targh.dFechaF
             , targh.idPlantel
			 , targh.sPlantel
			 , cpe.sNombre AS sPlanEstudios
			 , cpe.idPlanEstudios FROM (SELECT DISTINCT  t.idHorarioClase ,
                t.sHorario ,
                t.iDia ,
                t.idAsignatura ,
                t.sAsignatura ,
                t.idAula ,
                t.sAula ,
                t.idProfesor ,
                t.sProfesor ,
                t.iFolioGrupoClases ,
                t.sColor AS sColor ,
                t.iColor ,
                t.sGrupo,
				t.idGrupo,
				l.dFechaI,
				l.dFechaF
				, cg.idPlantel
				, cp.sNombre AS sPlantel
        FROM    @TR AS t
                LEFT JOIN dbo.Cat_HorarioClase AS chc ON chc.idHorarioClase = t.idHorarioClase
				LEFT JOIN dbo.Ctrl_Grupos AS cg ON cg.idGrupo = t.idGrupo
				LEFT JOIN dbo.Cat_Planteles AS cp ON cp.idPlantel = cg.idPlantel
				CROSS APPLY ( SELECT TOP 1 * FROM Ctrl_GrupoClases cgc WHERE cgc.iFolio = t.iFolioGrupoClases) l
				) targh
				LEFT JOIN dbo.Ctrl_Grupos AS cg2 ON cg2.idGrupo = targh.idGrupo
				LEFT JOIN dbo.Cat_PlanEstudios AS cpe ON cpe.idPlanEstudios = cg2.idPlanEstudios
        ORDER BY targh.idHorarioClase ,
                targh.iDia ,
				targh.idAsignatura

    END

以上是关于sql BIT / IAM-1823 - spListarHorariosGlobalSinColumnas - Se agrega alacreacióndecolor el id的主要内容,如果未能解决你的问题,请参考以下文章

sql BIT / IAM-1758 - sp_CE_ListarCalificacionesAsigRubSubRubCompletasAlumnoEvaluaciones se agrega加

sql BIT / IAM-1758 - sp_CE_ListarCalificacionesAsigRubSubRubCompletasAlumno - Se adiciona JOIN c

sql BIT / IAM-2081 - sp2CES_ALU_ObtenerInfoInscripVigente - Se agrega para obtener la oferta edu

sql server 2008 r2 sp1 怎么看版本

跪求SQL Server 2008 R2 Standard (64-bit) x64下载地址。

windows server 2003 64 位能不能支持 SQL 2000? 是需要安装SQL sp4的补丁吗? 顺求 2003 64位系统..