SQL Server - Ingenieros un poco de ayuda

   
Vista:

Ingenieros un poco de ayuda

Publicado por Carlos Restrepo (61 intervenciones) el 26/09/2007 22:13:41
Buenas tardes ingenieros

Les comento lo siguiente en una tabla de SQL server 2005 tengo almacenado una serie de formulas, es decir estas formulas son las sumas o restas de unos campos, pues bien necesito que cuando yo seleccione una de esas formulas en una variable, esta se ejecute ejemplo:

En la tabla cuentas tengo:


100-02-25 debito+credito
numerocuenta formula

necesito que al encontrar la formula que necesito (por que son varias), y pueda guardar el valor de la formula en una variable, luego pueda ejecutar esta variable y me retorne el resultado

es decir algo como esto:

select @v_formula=formula from cuentas where numerocuenta='100-02-25'

y en vfp puedo hacer esto &v_formula y el me arrojaria el resultado de la operacion, como podria hacer eso en sqlserver 2005

Espero haberme hecho explicar

muchas gracias

Carlos Restrepo
crestrepo@quisqueyana.com
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ingenieros un poco de ayuda

Publicado por Isaias (3308 intervenciones) el 27/09/2007 01:29:28
Carlos

Con tan poca informacion, solo te puedo recomendar QUERY DINAMICO, es lo unico que se me ocurre

DECLARE @SQLString NVARCHAR(1000)
SET @SQLString = 'SELECT '+formula ' FROM TUTABLA' from cuentas where
numerocuenta='100-02-25'
EXECUTE sp_executesql @SQLString
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Isaias te mando un ejemplo

Publicado por Carlos Restrepo (61 intervenciones) el 27/09/2007 15:12:11
Ingeniero, buenos dias

el siguiente es un ejemplo de lo que necesito hacer, he hceho consultas dinamicas, pero creeme eso no es lo que necesito, este es el ejemplo.

DECLARE @SUMA VARCHAR(200),@uno INT, @dos INT

set @uno=1
set @dos=1
set @suma='@uno+@dos'

exec @suma

el valor que me deberia retornar es 2, pero me saca el error Could not find stored procedure '@uno+@dos'.


De antemando muchas gracias

Carlos Restrepo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Isaias te mando un ejemplo

Publicado por Isaias (3308 intervenciones) el 27/09/2007 20:30:30
No utilices EXEC para query dinamico, utiliza sp_executesql

DECLARE @uno int
DECLARE @dos int
DECLARE @suma nvarchar(100)
set @uno=1
set @dos=1
set @suma=' SELECT '+cast(@uno as varchar)+'+'+cast(@uno as varchar)

exec SP_EXECUTESQL @suma
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias Isaias

Publicado por Carlos Restrepo (61 intervenciones) el 27/09/2007 20:35:49
Ingeniero muchas gracias por su colaboracion

Esto es justo lo que necesitaba

Carlos Restrepo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias Isaias

Publicado por Isaias (3308 intervenciones) el 28/09/2007 01:55:58
Como siempre, es un placer, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ing. Isaias un problemilla

Publicado por Carlos Restrepo (61 intervenciones) el 28/09/2007 23:23:39
Ing. Isaias

Cordial saludo

Que pena molestarlo de nuevo pero lo que necesito es lo siguiente, resulta que de forma dinamica creo una tabla temporal, llamada ##t_mtreme01, pero los campos y tipos de campos no los conozco, necesito meter en una tabla los valores de nombre de campo, tipo de campo, esta es la consulta que estoy haciendo

SELECT col.[name],typ.[name]
FROM sysobjects obj
INNER join syscolumns col on obj.id = col.id
INNER JOIN systypes typ ON col.xtype = typ.xtype
AND col.xusertype = typ.xusertype
WHERE obj.name = '##T_MTREME01'
AND typ.[name] <> 'sysname'


pero resulta que como la tabla es temporal el select no me retorna ningun valor, pero cuando es una tabla fija si trae los valors correctos.

Nuevamente le pido disculpas por tanta molestia.

Carlos Mario Restrepo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ingenieros un poco de ayuda

Publicado por Diablo (1 intervención) el 24/04/2012 17:03:17
Hola

Yo necesito lo sgte

(12 + 170) / 442 = Formula que contiene mi columna Formula (Varchar(500)) de mi tabla de formulas

SP--

Declare @Formula varchar(100)

select @Formula = Formula from mitabla

print @Formula
resultado '(12 + 170) / 442'

Ejecutar esta variable que me arroje el resultado de 0.41, tomar en cuenta que es una variable varchar(100)

Muchas gracias por todo





Necesito ejecutar esta formula de tal forma que el resultado sea 0.41
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar