![]() |
If dentro de un store procedure con DB2
Hola que tal necesito que me ayuden, es que tengo un store procedure que tiene un if para 3 diferentes casos, uno para cuando el nummateria=1, cuando el nummateria=2 y cuando nummateria=3, ayuda contesten por favor es urgente, trate con case pero tampoco me deja
Este es el código que uso ALTER PROCEDURE [espol].[SP_APRORESOL_ING] @idPeriodo as int, @idPrograma as int, @nummaterias as int,@minnota as decimal(5,2) AS If (@nummaterias = 1) Begin--actualizando los estados de las materias Begin UPDATE espol.TBL_CURSO_PERSONA SET cp.estado ='AC' FROM espol.TBL_CURSO_PERSONA CP INNER JOIN ESPOL.TBL_INSCRIPCION I ON CP.idpersonaprograma = I.idpersonaprograma and cp.idperiodo = i.idperiodo INNER JOIN espol.V_CUADRO_FINAL V ON (i.IDINSCRIPCION = V.IDINSCRIPCION AND CP.IDMATERIA = V.IDMATERIAM1 AND I.IDPROGRAMA = V.IDPROGRAMA AND I.IDPERIODO = V.IDPERIODO) WHERE V.IDPERIODO = @idPeriodo AND V.IDPROGRAMA = @idPrograma AND V.NUMMAT = 1 AND (V.M1NOTA >=@minnota AND V.M1NOTA < 6) End --Carreras de dos materia se aprueba con un promedio min pero solo cuando ya han aprobado una materia If (@nummaterias = 2) Begin Begin UPDATE espol.TBL_CURSO_PERSONA SET cp.estado ='AC' FROM espol.TBL_CURSO_PERSONA CP INNER JOIN ESPOL.TBL_INSCRIPCION I ON CP.idpersonaprograma = I.idpersonaprograma and cp.idperiodo = I.idperiodo INNER JOIN espol.V_CUADRO_FINAL V ON (I.IDINSCRIPCION = V.IDINSCRIPCION AND CP.IDMATERIA = V.IDMATERIAM2 AND I.IDPROGRAMA = V.IDPROGRAMA AND I.IDPERIODO = V.IDPERIODO) WHERE V.IDPERIODO = @idPeriodo AND V.IDPROGRAMA=@idPrograma AND V.NUMMAT = 2 AND V.M1NOTA >= 6 AND (V.M2NOTA >=@minnota AND V.M2NOTA < 6) --AND COALESCE(APRB_X_RESOLUCION, 'N') = 'N' --Carreras de tres materia se aprueba con un promedio min pero solo cuando ya han aprobado dos materias If (@nummaterias = 3) Begin Begin UPDATE espol.TBL_CURSO_PERSONA SET cp.estado='AC' FROM espol.TBL_CURSO_PERSONA CP INNER JOIN ESPOL.TBL_INSCRIPCION I ON CP.idpersonaprograma = I.idpersonaprograma and cp.idperiodo = i.idperiodo INNER JOIN espol.V_CUADRO_FINAL V ON (I.IDINSCRIPCION = V.IDINSCRIPCION AND CP.IDMATERIA = V.IDMATERIAM1 AND I.IDPROGRAMA = V.IDPROGRAMA AND I.IDPERIODO = V.IDPERIODO) WHERE V.IDPERIODO=@idPeriodo AND V.IDPROGRAMA=@idPrograma AND V.NUMMAT = 3 AND V.M2NOTA >= 6 AND V.M3NOTA >= 6 AND (V.M1NOTA >=@minnota AND V.M1NOTA < 6) --AND COALESCE(APRB_X_RESOLUCION, 'N') = 'N' UPDATE espol.TBL_CURSO_PERSONA SET cp.estado ='AC' FROM espol.TBL_CURSO_PERSONA CP INNER JOIN ESPOL.TBL_INSCRIPCION I ON CP.idpersonaprograma = I.idpersonaprograma and cp.idperiodo = i.idperiodo INNER JOIN espol.V_CUADRO_FINAL V ON (I.IDINSCRIPCION = V.IDINSCRIPCION AND CP.IDMATERIA = V.IDMATERIAM2 AND I.IDPROGRAMA = V.IDPROGRAMA AND I.IDPERIODO = V.IDPERIODO) WHERE V.IDPERIODO=@idPeriodo AND V.IDPROGRAMA=@idPrograma AND V.NUMMAT = 3 AND V.M1NOTA >= 6 AND V.M3NOTA >= 6 AND (V.M2NOTA >=@minnota AND V.M2NOTA < 6) End End |
Favor mapliar el problema
Hola podrias describir el problema que ocurre y otra pregunta porque tienes dos begin despues del if?
Saludes |
La franja horaria es GMT +2. Ahora son las 00:49:34. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi