【发布时间】:2013-05-08 18:22:46
【问题描述】:
好的,所以我现在正在尝试创建一个触发器,以帮助更新包含产品 ID、总销售额和每个产品的总数量的汇总表。本质上,我需要创建一个在订单更新后触发的触发器,当orderplaced 列设置为'1' 的值时,汇总表将需要由触发的触发器更新,该触发器从另外两个获取数据basket 和 basketitem 的表引用 idproduct。我已经创建了代码,但是对于我想到并分析它的更多内容,我无法获得有效的编译触发器。我将添加我的代码,以便您了解我在这里尝试做什么。谢谢!
create or replace
TRIGGER BB_SALESUM_TRG
AFTER UPDATE OF orderplaced ON BB_BASKET
DECLARE
CURSOR salesum_cur IS
SELECT bi.idproduct as idp, sum(b.total) as tot, sum(b.quantity) as qua,
bi.orderplaced as orpl
FROM bb_basket b, bb_basketitem bi
WHERE b.idbasket = bi.idbasket;
BEGIN
FOR rec_cur IN salesum_cur LOOP
IF rec_cur.orpl = 1 THEN
INSERT INTO bb_sales_sum (idproduct, tot_sales, tot_qty)
VALUES (rec_cur.idp, rec_cur.tot, rec_cur.qua));
END IF;
END LOOP;
END;
我尝试过不同的方法,但这是我最后一种。我也尝试使用局部变量而不是游标,但都没有奏效,非常欢迎任何建议!
谢谢!
【问题讨论】:
-
哪个表(或多个表)包含排序列?
-
第一个篮子还包含总数和数量,另一个表,名为 basketitem 的表仅包含产品 ID
-
请编辑您的帖子 - 将 bi.orderplaced 更改为 b.orderplaced。一个订单中可以有多个相同的产品吗?