创建oracle触发器,对rnk = 1应用15%的折扣

时间:2013-05-26 12:07:08

标签: sql oracle triggers database discount

我在编写sql语句时遇到问题,无法创建一个触发器,可以对顶级客户的未来购买产生15%的折扣。只要将该顶级客户的新购买插入购买表中,它就会对购买金额减少15%。那么在插入新购买后我会添加一个触发器吗?我一直在阅读几本指南/教程,但想要一些帮助/指导。感谢

SELECT CLIENTNO, CNAME, SPA PURCHASE_AMOUNT
FROM (SELECT CLIENT.CLIENTNO, CLIENT.CNAME, SUM(PURCHASE.AMOUNT) SPA,  RANK() OVER (ORDER        BY SUM(PURCHASE.AMOUNT) DESC) RNK
FROM PURCHASE JOIN CLIENT ON PURCHASE.CLIENTNO = CLIENT.CLIENTNO
GROUP BY CLIENT.CLIENTNO, CLIENT.CNAME)
WHERE RNK = 1;

1 个答案:

答案 0 :(得分:0)

听起来更好的解决方案可能是拥有一个DISCOUNTS表,触发器以15%(或0.15或0.85)的值填充/更新。然后,销售价格查找例程将在进行销售时考虑到这一点。 (这也可能会简化例如10%折扣的过程。)