我有两个表,需要计算一个新值,如下所示
这个表包含商品信息和价格
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