如何获得物品的折扣

时间:2011-02-02 11:49:42

标签: mysql

我有两张桌子,其中一张桌子持有一个项目的初始折扣,另一张桌子除了初始折扣外还有一个店员可以给予的折扣。可以出售任意数量的商品并享受折扣。

我在这里尝试的是按order_id分组并获得折扣的总金额。我没有这个正确的,因为我在购买10.00美元时的价格大约是5美元,而每件商品的折扣价为50%。

我该如何计算?

SUM(price*quantity)*(SUM(a.discount)+b.discount) AS discount

1 个答案:

答案 0 :(得分:1)

对于单个订单商品,您有价格,数量,初始折扣(每个订单总有折扣,但可能为零)以及与特定订单商品相关的可选折扣。因此,表是ORDER和ORDER_IITEMS。鉴于折扣存储为分数(0.000 .. 1.000), 您可能需要基于以下计算:

(price * quantity * (initial_discount + optional_discount))

获得单件商品的折扣;你聚集整个表达式。所以,你最终得到的结果是:

SELECT Order_ID, SUM(price * quantity * (initial_discount + optional_discount))
  FROM Orders AS O
  JOIN Order_Items AS I ON O.Order_ID = I.Order_ID
 GROUP BY Order_ID;

将别名应用于SUM中的列名:

SELECT Order_ID, SUM(I.price * I.quantity *
                     (O.initial_discount + I.optional_discount)) AS discount
  FROM Orders AS O
  JOIN Order_Items AS I ON O.Order_ID = I.Order_ID
 GROUP BY Order_ID;