查询表: -
FROM_METER TO_METER COST
1 5 0.004
6 10 0.006
11 20 0.012
需要的输出: - (此处为15和7,例如成本输出将来自查找主机)
METER COST
15 0.012
7 0.006
etc....
答案 0 :(得分:2)
通常使用查找表来提供常规数据的代码或参考值。假设您的业务表是您称为MASTER的业务表,您可以将其记录加入到您的查找中,如下所示:
select m.meter
, l.cost
from master m
join lookup l
on ( m.meter between l.meter_from and l.meter_to)
您的数据模型会出现问题:它不能保证MASTER表中的每个METER都会在查找表中找到匹配的记录。这就是为什么更常见的方法是使用类型或类别(比如说“便宜”,“合理”,“昂贵”)。
显然,如果不了解你的业务情况,我很难说你的模型是否正确,但你可能应该考虑如果MASTER表没有匹配的行怎么办。也许这种关系是在应用程序中强制执行的,但根据我的经验,这种方法很难使其具有防弹性。
答案 1 :(得分:1)
select ? Meter, cost from Lookup
where ? > = FROM_METER
and ? < = TO_METER
用您的参数替换?
。