none
ulitilzar el IF con consulta RRS feed

  • Pregunta

  • Esta consulta tiene dos parametro el parametro @Curso es lo que determina a que tabla me voy a comunicar osea si @curso es 6 el FROM seria

    FROM Curriculo_Enfermeria_Practica_6 C

    pero si el @Curso es 7 por ejemplo el From seria

    FROM Curriculo_Reparacion_7 

    quisiera si fuera posible hacer una sola consulta utilizando un IF o un Case (no se) donde pudiera decir si @curso entonces ejecuta esta consulta y asi sucesivamente


    @ESTUDIANTE VARCHAR(10),
    @Curso iNT
    AS
    SELECT @ESTUDIANTE AS ESTUDIANTE,
           c.CURSO,c.Semestre,
           ISNULL(C.Clase, '') AS CLASE,
           ISNULL(O.nota1, '') AS NOTA1,
           ISNULL(O.nota2, '') AS NOTA2,
    	   ISNULL(O.Nota3, '') AS NOTA3
    FROM Curriculo_Enfermeria_Practica_6 C
         LEFT JOIN
    (
        SELECT s.Num_Estudiante,
               s.curso,
               s.Codigo_clase,
               s.semestre,
               MAX(s.NOTA1) AS nota1,
               MAX(s.nota2) AS nota2,
    		   MAX(s.nota3) as nota3
        FROM
    (
        SELECT N.Num_ESTUDIANTE,
               O.CURSO,
               N.Codigo_CLASE,
               O.SEMESTRE,
               ISNULL(CASE
                          WHEN N.Cantidad = 1
                          THEN N.Nota_Final
                      END, '') AS NOTA1,
               ISNULL(CASE
                          WHEN N.Cantidad = 2
                          THEN N.Nota_Final
                      END, '') AS NOTA2,
    		   ISNULL(CASE
                          WHEN N.Cantidad = 3
                          THEN N.Nota_Final
                      END, '') AS NOTA3
    
        FROM Notas_pro_eva_bol_Trans n
             INNER JOIN
    (
        SELECT c.CURSO,
               c.SEMESTRE,
               C.POSICION
        FROM Curriculo_Enfermeria_Practica_6 AS c
    ) AS o ON n.curso = o.curso
              OR O.CURSO IS NULL
        GROUP BY N.Num_Estudiante,
                 O.CURSO,
                 N.Codigo_Clase,
                 O.SEMESTRE,
                 N.Cantidad,
                 n.Nota_Final
    ) AS s
        WHERE S.Num_Estudiante = @ESTUDIANTE AND S.Curso=@Curso
        GROUP BY s.Num_Estudiante,
                 s.curso,
                 s.Codigo_Clase,
                 s.semestre
    			 
    ) AS O ON C.CURSO = O.CURSO
              AND O.Codigo_Clase = C.Clase
    		  and o.Semestre = c.Semestre
    		  

    lunes, 11 de junio de 2018 15:17

Respuestas

  • Hola Efrain Diaz:

    Opción más simple

    Create procedure sp_ejemplo1(@curso int, @estudiante varchar(10))
    as
    
    if @curso=6 begin
    
    /*consulta  para tabla*/
    
    end
    else
    begin
    
    /*consulta otra tabla*/
    
    
    end

    Un saludo

    • Propuesto como respuesta HunchbackMVP lunes, 11 de junio de 2018 17:08
    • Marcado como respuesta Efrain Diaz lunes, 11 de junio de 2018 17:31
    lunes, 11 de junio de 2018 15:31

Todas las respuestas