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