Procedimientos almacenados

12/10/2009 - 20:05 por José A. Giménez [Py] | Informe spam
Saludos a todos.
Mediante un procedimiento almacenado traigo los datos que necesito de varias
tablas. En esos datos quiero realizar uno cálculos matemáticos sobre ciertos
campos para devolver otros valores. Por ejemplo, traigo el dato VALOR en mi
procedimiento almacenado, pero necesito calcular otro campo cuyo valor
dependerá de si VALOR es mayo o menor a otro.
Asi:
IF VALOR > OTROCAMPO
CALCULO: CAMPO1 * CAMPO2/CAMPO3
else
CALCULO: CAMPO4/CAMPO5
endif

IF VALOR2 > OTROCAMPO2
CALCULO: CAMPO12 * CAMPO32/CAMPO13
else
CALCULO: CAMPO40/CAMPO50
endif

Todos los campos lo trae un select

Necesito hacer esto para varios campos, por lo que tendré varios IF
Cómo puedo hacer esto con un procedimiento almacenado?
He visto ejemplos de IF pero que ejecutan Select dependiendo de alguna cosa.
Yo tengo un select, pero necesito hacer cosas diferentes con los campos.
Alguna ayuda o sitio donde pueda ver como programar los procedimientos
almacenados?

Gracias, son mis primeros pasos!

Preguntas similare

Leer las respuestas

#1 Maxi Accotto
12/10/2009 - 20:25 | Informe spam
Hola, y deberias hacer lo que indicaste, o sea un IF para cada condicion
dentro de tu Store.
Recuerda que es todo TSQL :)

Otra opcion quizas seria en lugar de usar Store ir hacia el lado de las
funciones de usuario, quizas te sean mas utiles para lo que estas planteando

"José A. Giménez [Py]" wrote in message
news:
Saludos a todos.
Mediante un procedimiento almacenado traigo los datos que necesito de
varias tablas. En esos datos quiero realizar uno cálculos matemáticos
sobre ciertos campos para devolver otros valores. Por ejemplo, traigo el
dato VALOR en mi procedimiento almacenado, pero necesito calcular otro
campo cuyo valor dependerá de si VALOR es mayo o menor a otro.
Asi:
IF VALOR > OTROCAMPO
CALCULO: CAMPO1 * CAMPO2/CAMPO3
else
CALCULO: CAMPO4/CAMPO5
endif

IF VALOR2 > OTROCAMPO2
CALCULO: CAMPO12 * CAMPO32/CAMPO13
else
CALCULO: CAMPO40/CAMPO50
endif

Todos los campos lo trae un select

Necesito hacer esto para varios campos, por lo que tendré varios IF
Cómo puedo hacer esto con un procedimiento almacenado?
He visto ejemplos de IF pero que ejecutan Select dependiendo de alguna
cosa. Yo tengo un select, pero necesito hacer cosas diferentes con los
campos.
Alguna ayuda o sitio donde pueda ver como programar los procedimientos
almacenados?

Gracias, son mis primeros pasos!
Respuesta Responder a este mensaje
#2 José A. Giménez [Py]
12/10/2009 - 23:29 | Informe spam
Gracias por responder, con lo que no doy es con la sintaxis...
Respuesta Responder a este mensaje
#3 Carlos Sacristan
13/10/2009 - 09:37 | Informe spam
Postea el script de creación de las tablas (o al menos los campos más
relevantes) y un par de datos de ejemplo para poder ayudarte mejor

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"José A. Giménez [Py]" wrote in message
news:
Saludos a todos.
Mediante un procedimiento almacenado traigo los datos que necesito de
varias tablas. En esos datos quiero realizar uno cálculos matemáticos
sobre ciertos campos para devolver otros valores. Por ejemplo, traigo el
dato VALOR en mi procedimiento almacenado, pero necesito calcular otro
campo cuyo valor dependerá de si VALOR es mayo o menor a otro.
Asi:
IF VALOR > OTROCAMPO
CALCULO: CAMPO1 * CAMPO2/CAMPO3
else
CALCULO: CAMPO4/CAMPO5
endif

IF VALOR2 > OTROCAMPO2
CALCULO: CAMPO12 * CAMPO32/CAMPO13
else
CALCULO: CAMPO40/CAMPO50
endif

Todos los campos lo trae un select

Necesito hacer esto para varios campos, por lo que tendré varios IF
Cómo puedo hacer esto con un procedimiento almacenado?
He visto ejemplos de IF pero que ejecutan Select dependiendo de alguna
cosa. Yo tengo un select, pero necesito hacer cosas diferentes con los
campos.
Alguna ayuda o sitio donde pueda ver como programar los procedimientos
almacenados?

Gracias, son mis primeros pasos!
Respuesta Responder a este mensaje
#4 José A. Giménez [Py]
14/10/2009 - 00:38 | Informe spam
Gracias Carlos, es un procedimiento almacenado de select sobre una tabla:

SELECT Campo1, Campo2, Campo3 from Tabla
Lo que necesito son tres campos más que son calculados, que dependen del
valor de campo1, campo2 y campo3.
Asi:

Si campo1>10
Calculo1=campo1-campo2
fin si

Si Campo 2 > Campo 3
calculo2= campo1 * 20
fin si

Si campo3 > campo1-campo2
calculo3=campo1*10
si-no
calculo3= campo2 * 10
fin si

Necesito que la consulta devuelva campo1, campo2, campo3, calculo1,
caluculo2, calculo3

Estoy probobando pero no doy con el código, no se donde o como posicionar
los IF porque siempre me da error.

Mil gracias!
Respuesta Responder a este mensaje
#5 Carlos M. Calvelo
14/10/2009 - 02:12 | Informe spam
Hola José,

On Tue, 13 Oct 2009 18:38:36 -0400, José A. Giménez [Py] wrote:

Gracias Carlos, es un procedimiento almacenado de select sobre una tabla:

SELECT Campo1, Campo2, Campo3 from Tabla
Lo que necesito son tres campos más que son calculados, que dependen del
valor de campo1, campo2 y campo3.
Asi:

Si campo1>10
Calculo1=campo1-campo2
fin si

Si Campo 2 > Campo 3
calculo2= campo1 * 20
fin si

Si campo3 > campo1-campo2
calculo3=campo1*10
si-no
calculo3= campo2 * 10
fin si

Necesito que la consulta devuelva campo1, campo2, campo3, calculo1,
caluculo2, calculo3

Estoy probobando pero no doy con el código, no se donde o como posicionar
los IF porque siempre me da error.

Mil gracias!



Con permiso de Carlos Sacristan:

select
Campo1,Campo2,Campo3,
case
when campo1>10 then campo1-campo2
else 0 -- esto no lo has especificado
end as Calculo1,
case
when Campo 2 > Campo 3 then campo1 * 20
else 0 -- esto no lo has specificado
end as Calculo2,
case
when campo3 > campo1-campo2 then campo1
else campo2
end * 10 as Calculo3
from Tabla

Saludos,
Carlos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida