Convertir Numero

31/05/2006 - 01:19 por Penta | Informe spam
Estimados.
Creo una temporal:

Select 0.000000 Monto Into #temporal From Tabla1

Lo que requiero hacer es:

Update #temporal
set Monto=(monto * 5.26) /100
Me marca error:
Error de desbordamiento aritmético al convertir numeric al tipo de
datos numeric

Les agradeceria su ayuda.
Penta.

Preguntas similare

Leer las respuestas

#1 MAXI [MVP SQL]
31/05/2006 - 01:37 | Informe spam
Hola, y eso esta bien, si tenes 0 y lo queres dividir por un numero eso
cuanto es?? ;)


Microsoft MVP SQL Server
Orador para Culminis
Miembro de SQLgurus (www.sqlgurus.org)
"Penta" escribió en el mensaje
news:
Estimados.
Creo una temporal:

Select 0.000000 Monto Into #temporal From Tabla1

Lo que requiero hacer es:

Update #temporal
set Monto=(monto * 5.26) /100
Me marca error:
Error de desbordamiento aritmético al convertir numeric al tipo de
datos numeric

Les agradeceria su ayuda.
Penta.
Respuesta Responder a este mensaje
#2 Ele
31/05/2006 - 01:52 | Informe spam
Hola
Esto que hace? 'Select 0.000000 Monto Into #temporal From Tabla1'
para mi es mejor la sentencia create table #temporal (Monto decimal(18,6))

"Penta" escribió en el mensaje
news:
Estimados.
Creo una temporal:

Select 0.000000 Monto Into #temporal From Tabla1

Lo que requiero hacer es:

Update #temporal
set Monto=(monto * 5.26) /100
Me marca error:
Error de desbordamiento aritmético al convertir numeric al tipo de
datos numeric

Les agradeceria su ayuda.
Penta.
Respuesta Responder a este mensaje
#3 Eladio Rincón
31/05/2006 - 09:18 | Informe spam
Hola,

Esa operación no puede dar error por desbordamiento: 0 dividido entre
cualquier cosa distinta de cero siempre es cero (a menos que uses números
complejos, que en tu caso deberías implementarlo con un tipo de usuario
CLR).

¿Estás seguro que has copiado las sentencias que generan el error?

Saludos,

Eladio Rincón,
http://www.siquelnet.com

Mentor, SQL Server MVP
Solid Quality Learning Iberoamericana
http://www.solidqualitylearning.com

"Penta" wrote in message
news:
Estimados.
Creo una temporal:

Select 0.000000 Monto Into #temporal From Tabla1

Lo que requiero hacer es:

Update #temporal
set Monto=(monto * 5.26) /100
Me marca error:
Error de desbordamiento aritmético al convertir numeric al tipo de
datos numeric

Les agradeceria su ayuda.
Penta.
Respuesta Responder a este mensaje
#4 Alejandro Mesa
31/05/2006 - 15:09 | Informe spam
Penta,

No pude reproducir el error en mi computer puesto que, como menciono Eladio,
la division de cero por cualquier # diferente de cero dara cero. Para evitar
problemas, especifica que tipo de data que quieres en la columna.

Select 0.000000 Monto Into #temporal From Tabla1



Select cast(0.000000 as numeric(12, 6)) Monto Into #temporal From Tabla1

Si dejas a SQL Server crear el tipo implicitamente, basado en el valor, lo
creara en este caso como numeric(6, 6), lo cual permite valores entre 0 y
0.999999

declare @n numeric(6, 6)

set @n = 0
set @n = 0.999999
set @n = 1.00 -- esta asignacion dara error
go


AMB



"Penta" wrote:

Estimados.
Creo una temporal:

Select 0.000000 Monto Into #temporal From Tabla1

Lo que requiero hacer es:

Update #temporal
set Monto=(monto * 5.26) /100
Me marca error:
Error de desbordamiento aritmético al convertir numeric al tipo de
datos numeric

Les agradeceria su ayuda.
Penta.


Respuesta Responder a este mensaje
#5 Penta
31/05/2006 - 21:39 | Informe spam
Estimados.
Me equivoque en un dato:
Update #temporal
set Monto=(monto_2 * 5.2645896) /100

monto_2 Este monto si tiene valores, entonces el probelma debe ser como
bien dice Alejandro como lo creo asi : 0.0000000 entonces me asume
numeric 6,6 y el resultado no "cabe" en dicho tipo de dato.

Probare inmediatemnete sus sugerencias.

GRACIAS !!!!
Penta.


Alejandro Mesa ha escrito:

Penta,

No pude reproducir el error en mi computer puesto que, como menciono Eladio,
la division de cero por cualquier # diferente de cero dara cero. Para evitar
problemas, especifica que tipo de data que quieres en la columna.

> Select 0.000000 Monto Into #temporal From Tabla1

Select cast(0.000000 as numeric(12, 6)) Monto Into #temporal From Tabla1

Si dejas a SQL Server crear el tipo implicitamente, basado en el valor, lo
creara en este caso como numeric(6, 6), lo cual permite valores entre 0 y
0.999999

declare @n numeric(6, 6)

set @n = 0
set @n = 0.999999
set @n = 1.00 -- esta asignacion dara error
go


AMB



"Penta" wrote:

> Estimados.
> Creo una temporal:
>
> Select 0.000000 Monto Into #temporal From Tabla1
>
> Lo que requiero hacer es:
>
> Update #temporal
> set Monto=(monto * 5.26) /100
> Me marca error:
> Error de desbordamiento aritmético al convertir numeric al tipo de
> datos numeric
>
> Les agradeceria su ayuda.
> Penta.
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida