![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 Última edición por María Belén fecha: 22-02-2010 a las 16:58:45. |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Store procedure | sancarlos | MySQL | 3 | 30-01-2008 19:51:49 |
Store Procedure | sépoco | MS SQL Server | 5 | 10-01-2008 16:11:54 |
Problema con entrecomillado en sentencia select in dentro de un Store Procedure | Caballero Negro | MS SQL Server | 3 | 12-01-2007 02:46:37 |
Store procedure php | jorgito | MySQL | 1 | 06-06-2006 08:55:12 |
store procedure | ronimaxh | Firebird e Interbase | 2 | 24-06-2003 20:20:22 |
![]() |
|