В моей базе данных есть следующие таблицы:
![enter image description here](https://i.stack.imgur.com/NLv3Z.png)
Первая таблица называется Amount
, вторая Product
, третья Purchase
.
А мне надо создать триггер на вставку в таблицу значений.Например, я вставлю следующие значения: 4, 1, 10, где 4 - id_purchase
, 1 - id_product
, а 4 - количество этих продуктов.И триггер должен вычесть это количество из Amount_On_Stock
.В моем примере это должно быть: было 48, стало 38.
Вот код моего триггера:
CREATE TRIGGER AmountInsert ON Amount
AFTER INSERT
AS
BEGIN
UPDATE Product
SET Amount_On_Stock = (
SELECT
Amount_On_Stock
FROM Product
WHERE ID_Product = (
SELECT
MAX(ID_Product)
FROM Purchase
WHERE ID_Purchase = (
SELECT
MAX(ID_Purchase)
FROM Purchase
)
)
)-(
SELECT
Amount
FROM AMOUNT
WHERE ID_Product = (
SELECT
MAX(ID_Product)
FROM Purchase
WHERE ID_Purchase = (
SELECT
MAX(ID_Purchase)
FROM Purchase
)
)
)
END
Но когда я пытаюсь создать этот триггер, у меня появляется следующая ошибка:
Агрегированное выражение нельзя использовать в предложении WHERE, если оно не содержится в подзапросе предложения HAVING или в списке выбора, а агрегируемый столбец не является внешней ссылкой.
Итак, как я могу решить эту проблему?