none
if anidados o sentencias case RRS feed

  • Pregunta

  • Tabla Notas

    Num_Estudiante      Termino        Nota_Final

            11                    1010               A

            11                    1011              WF

            11                    1012               B

            11                    1013              WA

    Tabla Termino

    Termino         Fecha_Fin         Fecha_Fin_2

       1011          02/02/2018       05/10/2018

       1013          03/12/2018           Null

    Consulta si la Nota_Final = WF o la Nota_Final = WA

    si Fecha_Fin = NULL entonces   Fecha_Fin

    si no entonces Fecha_Fin_@ cuando el numero_estudiante = @Numero_Estudiante

    El resultado de mi consulta deberia ser

    Num_Estudiante      Termino            Fecha

             11                   1011         05/10/2018

             11                   1013         03/12/2018

    lo unico que necesito saber es como usar if anidados o case con un if, gracias

    lunes, 18 de noviembre de 2019 12:31

Respuestas

  • Hola Efrain Diaz:

    lo unico que necesito saber es como usar if anidados o case con un if, gracias

    declare @valor int = 12;
    
    
    select case when @valor> 0  and @valor < 3 
    			then
    				case when @valor =0 then 'valor0' -- resolucion de este case
    					 when @valor > 1 and @valor < 3 then -- anido otro case
    							case when @valor = 2 then 'valor2' end -- fin del case interior
    					 end --- de este case
    			when @valor > 5 then
    				case when @valor = 6 then 'valor 6'
    					 when @valor = 7 then 'valor'
    					 else 'valor x' 
    			end --- fin del case
    	  end -- fin del case exterior

    Dentro de cada resultado de una expresión case, puedes incluir otro case. Este siempre finaliza con end, y por tanto resolverá un valor de un tipo.

    Case

    https://docs.microsoft.com/es-es/sql/t-sql/language-elements/case-transact-sql?view=sql-server-ver15


    • Marcado como respuesta Efrain Diaz martes, 19 de noviembre de 2019 13:25
    lunes, 18 de noviembre de 2019 13:56

Todas las respuestas

  • Deleted
    lunes, 18 de noviembre de 2019 12:44
  • Jose el detalle es que yo necesito saber todas las notas y no filtrar solo por si la nota es WF o WA osea

    se supone que mi consulta total fuera la siguiente, gracias por contestar

    Num_Estudiante      Termino            Fecha            Nota Final

             11                   1010              NULL                      A

             11                   1011         05/10/2018                 WF

             11                   1012               NULL                      B

             11                   1013         03/12/2018                 WA

    lunes, 18 de noviembre de 2019 13:08
  • El filtro deber ser por el numero de estudiante  Num_Estudainte
    lunes, 18 de noviembre de 2019 13:11
  • Deleted
    lunes, 18 de noviembre de 2019 13:24
  • Hola Efrain Diaz:

    lo unico que necesito saber es como usar if anidados o case con un if, gracias

    declare @valor int = 12;
    
    
    select case when @valor> 0  and @valor < 3 
    			then
    				case when @valor =0 then 'valor0' -- resolucion de este case
    					 when @valor > 1 and @valor < 3 then -- anido otro case
    							case when @valor = 2 then 'valor2' end -- fin del case interior
    					 end --- de este case
    			when @valor > 5 then
    				case when @valor = 6 then 'valor 6'
    					 when @valor = 7 then 'valor'
    					 else 'valor x' 
    			end --- fin del case
    	  end -- fin del case exterior

    Dentro de cada resultado de una expresión case, puedes incluir otro case. Este siempre finaliza con end, y por tanto resolverá un valor de un tipo.

    Case

    https://docs.microsoft.com/es-es/sql/t-sql/language-elements/case-transact-sql?view=sql-server-ver15


    • Marcado como respuesta Efrain Diaz martes, 19 de noviembre de 2019 13:25
    lunes, 18 de noviembre de 2019 13:56