#sql #oracle
#sql #Oracle
Вопрос:
У меня есть две таблицы в oracle.
invoice(id_invoice, description, price)
product_invoice(id,id_invoice, description, price, quantity, final_price)
Я хочу сделать «сумму» столбца «final_price» со всеми строками с одинаковым «id_invoice» и сохранить его в таблице invoice. Я пытаюсь использовать триггеры, но это не работает. Вот мой триггер
create or replace NONEDITIONABLE TRIGGER updateukupno AFTER insert ON stavkaotpremnice FOR EACH ROW BEGIN
UPDATE invoice a
SET a.price =
(SELECT SUM(final_price)
FROM product_invoice
WHERE id_invoice = a.id_invoice)
WHERE a.id_invoice = :NEW.id_invoice;
END;
Ответ №1:
Я думаю, что этот тип логики обычно выражается постепенно:
UPDATE invoice i
SET price = price coalesce(:new.final_price, 0))
WHERE i.id_invoice = :NEW.id_invoice;