Ver Mensaje Individual
  #1  
Antiguo 11-06-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Reputación: 27
eduarcol Va por buen camino
Subselect illegal in this context.

Estoy haciendo un trigger para que me actualize el costo promedio del producto al momento de actualizar un registro.

Este es el trigger
Código Delphi [-]
AS
begin
   if (New.costounitario <> Old.costounitario) then
   begin
      Insert Into Historicocostos (codigo, codigoproducto, costoanterior, costonuevo, fechacambio, UsuarioCambio) values (Coalesce((Select Max(Codigo) from HistoricoCostos where codigoproducto = new.codigo), 0) + 1, new.codigo, Old.costounitario, New.costounitario, current_date, New.UsuarioModificado);
      New.ultimocosto = Old.costounitario;
      if (New.costopromedio <> 0) then
      begin
         New.CostoPromedio = (select avg(costonuevo) from historicocostos where codigoproducto = New.codigo);
      end
      else
      begin
         New.costopromedio = New.costounitario;
      end
   end
end

pero al compilar me da este error:

Cita:
SQL error code = -206.
Subselect illegal in this context.
Lo compilo con ibExpert y Firebird 2.0
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita