Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > DB2
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-02-2010
María Belén María Belén is offline
Registrado
 
Registrado: feb 2010
Posts: 1
Poder: 0
María Belén Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 26-05-2010
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Favor mapliar el problema

Hola podrias describir el problema que ocurre y otra pregunta porque tienes dos begin despues del if?
Saludes
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
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


La franja horaria es GMT +2. Ahora son las 08:15:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi