SQL Server - Setear la escala

 
Vista:

Setear la escala

Publicado por Carlos Raygada (2 intervenciones) el 03/05/2007 22:40:14
¿Alguien sabe si en SQL 2000 se puede setear, de alguna manera para que las operaciones matemáticas generen un resultado a un escala fija, sin usar la funcion round?

Si se multiplican dos numeros de 2 decimales cada uno, el resultado generado es de 4 decimales hasta llegar a un máximo de 38 decimales , lo que necesito es poder setear ese máximo a un numero menor

Necesito que todas las operaciones trabajen con un máximo de 4 decimales.

gracias
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:Setear la escala

Publicado por eljhonb (124 intervenciones) el 03/05/2007 22:53:49
Existen dos formas...
una es realizando un cast a tu resultado antes de insertarlo en la tabla.

Select convert(numeric(15,2), 15.43*2.56). ----- 15 dígitos de los cuales 2 son decimales

la otra manera es definir tu columna de tipo numérico con escala de 2.
algo como así...

Create table A (
[Total] [decimal](10, 2) NULL
)

No sé si eso era lo que estabas buscando ...

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

RE:Setear la escala

Publicado por Carlos Raygada (2 intervenciones) el 03/05/2007 23:53:57
Mi problema es que tengo una tabla con datos decimal(14,2) y 3 columnas computadas

Computada1 = columna1 * columna2
Computada2 = columna3 * columna4
Computada3 = columna1 * columna2 + columna3 * columna4

Las 3 columnas computadaspor se producto de numeros con 2 decimales generan un resultado de 4 decimales.

Cuando muestro un reporte que consulta las columnas computadas, formateado a dos decimales, los montos no cuadran

en la BD los datos son estos

Computada1 = 10.5642
Computada2 = 5.2643
__________________
Computada3 = 15.8285 (correcto)

en el reporte los datos son estos

Computada1 = 10.56
Computada2 = 5.26
__________________
Computada3 = 15.83 (no correcto)

lo que necesito es que el SQL trabaje con 2 decimales para que
Computada3 = columna1 * columna2 + columna3 * columna4 = 10.56 + 5.26 = 15.52
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:Setear la escala

Publicado por eljhonb (124 intervenciones) el 04/05/2007 00:19:59
Primero que todo.. estás sumando mal
10.56 + 5.26 = 15.82 NO 10.56 + 5.26 = 15.52.. o no sé como estás realizando la suma

siendo el resultado esperado igual a 15.82, entonces obliga que eso sea así:

insert into tabla (Computada3)
Select (convert(numeric(10,2),Computada1) +convert(numeric(10,2),Computada2))

Esta es una forma de solucionar el problema

Así:
insert into ensayo (Total_pago)
Select (convert(numeric(10,2),10.5642) +convert(numeric(10,2),5.2643))

este es el resultado:
15.82

Así:
insert into ensayo (Total_pago) -- siendo la tabla total_pago numeric(10,2)
Select (10.5642+5.2643)
15.83

Lo otro es que si tienes las columnas computada1 y computada2 para que haces computada3 = columna1 * columna2 + columna3 * columna4? no sería mejor
Computada3 = computada1 + computada2?

Espero te sirva...
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