Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Resta de 2 smallint que sale de rango

Estas en el tema de Resta de 2 smallint que sale de rango en el foro de SQL Server en Foros del Web. Buenas chicos! como estan? tengo un problema que creo debe ser facil pero no se que hacer Tengo una tabla con dos campos smallint campos ...
  #1 (permalink)  
Antiguo 25/10/2011, 11:25
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 18 años, 10 meses
Puntos: 1
Resta de 2 smallint que sale de rango

Buenas chicos! como estan?

tengo un problema que creo debe ser facil pero no se que hacer

Tengo una tabla con dos campos smallint

campos = fare smallint, balance smallint

y cuando lo inserta en una temporal haciendo un calculo me da el error
Error de desbordamiento aritmético al convertir expression al tipo de datos smallint.

Porque tengo en un registro el valor -25536 para balance y 20000 para fare y tiene un campo calculado que es (balance - fare) y da -45536 a la tabla temporal le pongo todo en bigint pero me da el mismo error

se les ocurre algo?

Muchas gracias!

besos,

Lau
  #2 (permalink)  
Antiguo 25/10/2011, 11:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Resta de 2 smallint que sale de rango

Rango

smallint:
-2^15 (-32,768) to 2^15-1 (32,767)

El numero que sale de la resta de -25536 - 20000 = -45536

-45536 < -32,768 que es el rango del smallint por eso no sale tu consulta.

puedes meter estos datos en una variable int

declare @balance smallint
declare @fare smallint
set @balance=-25536
set @fare=20000
select convert(int,@balance)-convert(int,@fare)


saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: rango, resta, tabla, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:44.