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 (https://www.clubdelphi.com/foros/showthread.php?t=75288)

DasGrun 11-08-2011 01:17:41

Campos Calculados
 
Hola!!! Una Consulta?

Tengo una Tabla Creada en Firebird con Los Siguiente Campos:

Código SQL [-]
CREATE TABLE PROVEEDORES (
  PROVEEDOR_ID SMALLINT NOT NULL,
  PROVEEDOR DESCRIPTION COLLATE ES_ES_CI_AI,
  PREG_PRECIO_COMP INTEGER,
  PREG_TIEM_REPTA INTEGER,
  PREG_INF_TEC INTEGER

en esta Misma Tabla quiero Crear un Campo Calculado que me haga lo Siguiente:

que Sume los Campos(PREG_PRECIO_COMP,
PREG_TIEM_REPTA,
PREG_INF_TEC) y este lo Divide entre 44 luego que lo multiplique por 100
((PREG_PRECIO_COMP + PREG_TIEM_REPTA + PREG_INF_TEC ) / 44) * 100

ahora este codigo me presenta el siguiente error:
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 92.


Gracias muy buenas por su repuesta.

mRoman 11-08-2011 05:34:32

Y ese error en que momento te lo da?.....

Escribe el Query que ejecutas y te manda el error que mencionas, para ver como te podemos ayudar.

Saludos

duilioisola 11-08-2011 09:50:11

Cree el dominio DESCRIPCION como un VARCHAR(35).
Traté de pasar tu código y me dió error en COLLATE ES_ES_CI_AI.
(He utilizado Firebird 1.5)

Este código no me da ningún error:
Código SQL [-]
CREATE TABLE PROVEEDORES (
    PROVEEDOR_ID      SMALLINT NOT NULL,
    PROVEEDOR         DESCRIPCION /* DESCRIPCION = VARCHAR(35) default '' NOT NULL */,
    PREG_PRECIO_COMP  INTEGER,
    PREG_TIEM_REPTA   INTEGER,
    PREG_INF_TEC      INTEGER,
    CALCULADO         COMPUTED BY (((PREG_PRECIO_COMP + PREG_TIEM_REPTA + PREG_INF_TEC ) / 44) * 100)
);

Si ya tienes la tabla, deberás hacer:
Código SQL [-]
ALTER TABLE PROVEEDORES
ADD CALCULADO COMPUTED BY (((PREG_PRECIO_COMP + PREG_TIEM_REPTA + PREG_INF_TEC ) / 44) * 100);

DasGrun 11-08-2011 16:03:24

Gracias por contestar la consulta?

El error se me ejecuta cuando estoy creando el Campo "calculado", no lo puedo crear por el error.

DasGrun 11-08-2011 16:08:22

GRACIAS duilioisola

SI LO he Logrado HAcer por medio del Alter.

Gracias.

Delphius 13-08-2011 23:20:56

Cita:

Empezado por duilioisola (Mensaje 409159)
Cree el dominio DESCRIPCION como un VARCHAR(35).
Traté de pasar tu código y me dió error en COLLATE ES_ES_CI_AI.
(He utilizado Firebird 1.5)

Es que ese collate ¿cómo se diría en español? está disponible desde 2.1 o 2.5 no recuerdo bien.

Saludos,

DasGrun 16-08-2011 21:45:45

Esta Disponible en 2.1 Delphius, si me sirvio lo que paso es que los Campos Sumados( PREG_PRECIO_COMP INTEGER, PREG_TIEM_REPTA INTEGER, PREG_INF_TEC INTEGER,) estaban como Tipo en Entero entonces el resultado siempre sera Cero, se tuvo que cambiar a Numeric 12,2.

Saludos.


La franja horaria es GMT +2. Ahora son las 00:32:45.

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