在SQL中,如何根据范围计算值



我有两个表,需要计算一个新值,如下所示

这个表包含商品信息和价格

ID | Item_Desc | Price
-----------------------
1  | Item 1    |   3
2  | Item 2    |  10
3  | Item 3    |  15

此表包含有关价格范围和调整的信息,此值将来可能会改变

Initial_value | End_value | Adjust
-----------------------------------
0     |     5     |   5
5.01    |     10    |   10
10.01    |     20    |   15

结果:我希望结果是基于第二张表的新价格:

ID | Item_Desc | Price   | New price
-------------------------------------
1  | Item 1    |   3     |    3.15
2  | Item 2    |  10     |    11
3  | Item 3    |  15     |    17.25

任何关于查询的想法,那不是硬编码的范围值和调整?

您可以使用join和乘法:

select i.*, i.price * (1 + p.adjust / 100.0) as new_price
from items i left join
prices p
on i.price between p.initial_value and p.end_value

最新更新