![]() |
Error en trigger
Hola a todos.
Estoy empezando a hacer cosas con FireBird y no estoy muy familiarizado con la sintaxis y la forma de trabajar. El caso es que he generado un trigger que se ejecuta cuando creo un registro en una tabla y que, a su vez, crea un registro en otra. La idea es que cuando el campo 'aplicar_re1 de la primera tabla valga '1' se guarde en el campo 'RE' de la segunda tabla el valor obtenido mediante la sentencias 'select RE from impuestos where impuesto_ID = new.tipo_iva', mientras que si vale '0' lo que se guarde sea el valor '0'. Con las primeras líneas del código pretendo asignar este valor a la variable 'ReqEquiv' declare variable ReqEquiv integer; begin if (new.aplicar_re = 1) then ReqEquiv = (select RE from impuestos where impuesto_ID = new.tipo_iva); else ReqEquiv = 0; insert into regulariz_almcn (Fecha, Sentido, Causa_ID, Producto_ID, Cantidad, Precio, IVA, RE, Act_Precio, Act_Stock) values ('now', 0, 1, NEW.producto_id, new.stock_actual, new.precio_compra, (select IVA from impuestos where impuesto_ID = new.tipo_iva), ReqEquiv, 0, 0); El caso es que cuando intento compilar, me aparece el error. 'Column unknown. REQEQUIV' y ya no se cómo seguir. ¿Puede alguien darme una luz sobre lo que estoy haciendo mal? Muchas gracias |
La sentencia para cargar una variable con un select es :
Recuerda que dentro de sentencias SQL, si no le pones : antes del nombre de la variable, FB lo tomará como un campo y te dirá que no existe. En el resto del Trigger/Procedimiento lo tomará como variables.
|
Cita:
Recuerda poner los tags al código fuente, ejemplo: ![]() Y recuerda poner títulos descriptivos a tus preguntas. Gracias :) |
Muchas gracias duilioisola. Con el código que has puesto me ha funcionado perfectamente
|
La franja horaria es GMT +2. Ahora son las 05:26:28. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi