Update con decimales

10/06/2008 - 18:27 por Mastercafe | Informe spam
Buenas tardes grupo,
Tengo una consulta de actualización que uso en asp
strsqlrating="UPDATE " & cmdvarTbl & " SET ctrlrates = ctrlrates + " &
cmdvarRATE & ", ctrlnorates = ctrlnorates + 1, ctrlratesval=(ctrlrates + " &
cmdvarRATE & ")/(ctrlnorates + 1) WHERE " & cmdIndice & " = " & cmdvarID

El tema es que lo hace bien salvo el campo ctrlratesval que deberia
almacenar la operación con 1 decimal (el campo destino es Numeric Precision
10 escala 1), los campos de ctrlnorates y ctrlrates son enteros (no uso
decimales).
Un ejemplo: tengo ctrlrates=9 ctrlnorates=2 en teoria deberia haber guardado
en ctrlratesval=4,5 pero tengo un 4 (9/2=4,5)

He probado con round y con format pero tampoco, la duda es si el problema
esta en la operación ya que son dos enteros a dividirse y el resultado lo
asume como entero o bien debo usar un convert o similar.

Gracias

Saludos desde Oviedo (Asturias)

Juan Menéndez
Mastercafe SL
www.mastercafe.com
info@mastercafe.com
Oviedo (Asturias)

Si la información recibida te ha servido indicalo con otro post.
En caso de resolverlo por otros medios, indica la solución usada
ayudaras a otros y aprenderemos todos.
 

Leer las respuestas

#1 Alejandro Mesa
10/06/2008 - 20:02 | Informe spam
La division entre enteros da como resultado un entero, los decimales son
truncados. Usa CAST / CONVERT o multiplica uno de los operandos por el valor
decimal 1.00 para que SQL Server haga la conversion implicitamente.

Mostrar la cita
ctrlratesval=(ctrlrates + " & cmdvarRATE & ")/(ctrlnorates + 1.0)


AMB

"Mastercafe" wrote:

Mostrar la cita

Preguntas similares