Hola.
Si interpreté bién tu consulta, intenta algo similar a esto:
Código Delphi
[-]
begin
qyFactura.Close;
qyFactura.SQL.Text := 'SELECT CODPARTE, CANTIDAD FROM FACTURAITEM';
qyFactura.Open;
qyProducto.Close;
qyProducto.SQL.Clear;
qyProducto.SQL.Add('UPDATE PRODUCTOS');
qyProducto.SQL.Add('SET EXISTENCIA = EXISTENCIA - :VALOR');
qyProducto.SQL.Add('WHERE COD = :CODIGO');
qyProducto.Prepared := True;
try
while not qyFactura.Eof do
begin
qyProducto.Parameters.ParamByName('VALOR').Value :=
qyFactura.FieldByName('CANTIDAD').Value;
qyProducto.Parameters.ParamByName('CODIGO').Value :=
qyFactura.FieldByName('CODPARTE').Value;
qyProducto.ExecSQL;
qyFactura.Next;
end;
finally
qyProducto.Prepared := False;
end;
...
( Revisa que los nombres de tablas y campos sean los correctos )
Saludos