Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Campos calculados, computed by (https://www.clubdelphi.com/foros/showthread.php?t=82588)

DamianG 21-03-2013 15:39:11

Campos calculados, computed by
 
Hola a todos, mi consulta esta vez debido a un calculo que realizo en la una tabla donde tengo un campo de aportes de empleados llamado APOTRA (Numeric 12,2), un campo donde tengo el sueldo, SUELDO ( Numeric 12,2), y un campo calculado que es el total del aporte TAPOTRA ( COMPUTED BY SUELDO * APOTRA/100);

El problema es que el si el % del aporte es (APOTRA=2,7) y el sueldo es 1000 el total me da como resultado el campo calculado 20, o sea no toma el decimal...

En la tabla veo que el campo TAPOTRA se guardo como BIGINT, entonces lo cree de la siguiente manera

Código SQL [-]
alter table empsueldosdet add 
TAPOTRA COMPUTED BY CAST(SUELDO * APOTRA /100 as numeric(12,2));

Igualmente sigue redondeando sin decimales el calculo... Alguien sabe que puede pasar? Gracias!!

Casimiro Notevi 21-03-2013 18:01:51

Guárdalo como cadena de texto: cast( xxxx as varchar)
¿Para qué sirve almacenar en un campo calculado el sueldo?

Al González 21-03-2013 19:09:11

Sólo tienes que cambiar ese "100" por "100.0". Me parece que en algún otro hilo se habló de las reglas de división en SQL / Firebird.

ecfisa 21-03-2013 19:46:31

Cita:

Empezado por Al González (Mensaje 457331)
Sólo tienes que cambiar ese "100" por "100.0". Me parece que en algún otro hilo se habló de las reglas de división en SQL / Firebird.

Correcto así es Al.

No recuerdo el hilo, pero el caso específico figura en la documentación de Firebird: Division of an integer by an integer

Saludos. :)

DamianG 21-03-2013 20:47:00

Gracias, poniendo 100.00 se acomodo. Casimiro no guardo en un campo calculado el sueldo, sino el resultado de un porcentaje que debo obtener según ciertos aportes que se realizan a cada empleado. Esos datos estan en una grilla donde se van calculando cuando ponen el porcentaje. Para eso los campos calculados me han servido.

Gracias.

Casimiro Notevi 21-03-2013 21:08:33

^\||/ bien, ahora entiendo.


La franja horaria es GMT +2. Ahora son las 05:38:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi