ejecutar contenido de una variable

29/11/2005 - 21:12 por diana idrobo | Informe spam
hola, tengo el siguiente problemita,
en una variable almaceno lo siguiente
@strFormula = '(1212/1496)*100'
y luego debo ejecutar lo que contiene la variable.

estoy haciendo lo siguiente:
set @strUno = 'SELECT @dblLevel= CAST(' + @strformula + ' as real)'
SET @ParmDefinition = N'@dblLevel real output'
EXECUTE sp_executesql @strUno, @ParmDefinition , @dblValor output

pero resulta que siempre rercibo 0.

que otra forma hay de hacer esto?

GRACIAS

Diana Idrobo
 

Leer las respuestas

#1 Alejandro Mesa
29/11/2005 - 22:46 | Informe spam
Diana,

El script esta correcto. Lo que pasa es que estas haciendo una division
entre enteros y por lo tanto el resultado sera entero. Si el numerador es
menor que el divisor, el resultado estara entre 0 y 1, y por lo tanto sql
server lo trunca para convertir el resultado a entero.

select 1212/1496

Para que sql server considere los decimales, debes expresar los valores como
decimales.

select 1212.00/1496
select 1212/1496.00
select 1212.00/1496.00
select (1212/1496)*100.00
select 1212/cast(1496 as numeric(12, 4))
go


AMB

"diana idrobo" wrote:

hola, tengo el siguiente problemita,
en una variable almaceno lo siguiente
@strFormula = '(1212/1496)*100'
y luego debo ejecutar lo que contiene la variable.

estoy haciendo lo siguiente:
set @strUno = 'SELECT @dblLevel= CAST(' + @strformula + ' as real)'
SET @ParmDefinition = N'@dblLevel real output'
EXECUTE sp_executesql @strUno, @ParmDefinition , @dblValor output

pero resulta que siempre rercibo 0.

que otra forma hay de hacer esto?

GRACIAS

Diana Idrobo

Preguntas similares