gpt4 book ai didi

sql - 给予多次折扣后的产品最终价格

转载 作者:行者123 更新时间:2023-12-02 02:14:24 25 4
gpt4 key购买 nike

我有两张 table 。一张表显示 ID 及其价格,第二张表显示每个 ID 的折扣。在折扣表中,一个Id可以有很多折扣,我需要知道一个Id的最终价格。

查询它的最佳方式是什么(在一个查询中)?对于每个 id 的许多折扣,该查询应该是通用的(不仅仅是下面示例中提到的 2 个)

例如表一

id  price   
1 2.00
2 2.00
3 2.00

表二

id  Discount   
1 0.20
1 0.30
2 0.40
3 0.50
3 0.60

最终结果:

id  OrigPrice   PriceAfterDiscount  
1 2.00 1.12
2 2.00 1.20
3 2.00 0.40

最佳答案

这是另一种方法:

SELECT T1.ID, T1.Price, T1.Price * EXP(SUM(LOG(1 - T2.Discount)))
FROM T1 INNER JOIN T2 ON T1.ID = T2.ID
GROUP BY T1.ID, T1.Price

EXP/LOG 技巧只是进行乘法的另一种方法。

如果您在 T1 中有条目而在 T2 中没有折扣,则可以将 INNER JOIN 更改为 LEFT JOIN。您最终会得到以下结果:

ID   Price   Discount
4 2.00 NULL

您的逻辑可以考虑折扣价格列中的空值并采用原始价格,或者只为其添加 0 折扣记录。

关于sql - 给予多次折扣后的产品最终价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45298224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com