如果我正确理解您的情况,您需要计算一种货币单位(25000/450 000)的折扣,然后进行所有计算:
;
WITH cte AS (
SELECT
SALE_MASTER.ORDER_NUMBER,
SUM(SALE_DETAIL.QUANTITY * SALE_DETAIL.PRICE) AS TOTAL_AMOUNT,
SALE_MASTER.DISCOUNT_AMOUNT
FROM SALE_DETAIL, SALE_MASTER
WHERE SALE_DETAIL.ORDER_NUMBER = SALE_MASTER.ORDER_NUMBER
GROUP BY SALE_MASTER.ORDER_NUMBER, SALE_MASTER.DISCOUNT_AMOUNT
)
SELECT
SALE_DETAIL.ITEM_NAME,
SALE_DETAIL.QUANTITY,
SALE_DETAIL.PRICE,
(SALE_DETAIL.QUANTITY * SALE_DETAIL.PRICE) * (cte.DISCOUNT_AMOUNT / cte.TOTAL_AMOUNT) AS ITEM_DISCOUNT_FOR_ALL_ITEMS,
SALE_DETAIL.PRICE * (cte.DISCOUNT_AMOUNT / cte.TOTAL_AMOUNT) AS ITEM_DISCOUNT_FOR_ONE_ITEM
FROM SALE_DETAIL, cte
WHERE SALE_DETAIL.ORDER_NUMBER = cte.ORDER_NUMBER
输出:
ITEM_NAME QUANTITY PRICE ITEM_DISCOUNT_FOR_ALL_ITEMS ITEM_DISCOUNT_FOR_ONE_ITEM
Double Bed 5 70000 19444.444444 3888.888889
Sofa 5 10000 2777.777778 555.555556
Dining Table 1 50000 2777.777778 2777.777778