我需要确定一个值适合的范围,以便确定适当的折扣。只是试图确定在 Access (2016) 中执行此操作的最佳最有效方法。这是一个简化的表格:
我的第一个想法是遍历记录集以评估每条记录的 >= FROM$ 和 =< TO$ 直到找到范围匹配,然后获取折扣率。是否有更有效的方法使用 SQL 语句执行此操作?
最佳答案
在您的示例中,无法找到诸如 9.999 之类的值的折扣...它大于 9.99 且小于 10,并且不适合内部你的任何范围。我首先将您的数据更改为:
| From | To | Discount |
|------|------|----------|
| 0 | 10 | 0.05 |
| 10 | 20 | 0.10 |
| 20 | 50 | 0.12 |
| 50 | NULL | 0.13 |
然后你可以像这样探测表格:
SELECT Discount
FROM Discounts
WHERE (@Value >= [From])
AND (@Value < [To] OR [To] IS NULL)
关于sql - 从多个范围查找值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53202500/