1

查找表:-

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.... 
4

2 回答 2

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 表没有匹配的行该怎么办。也许这种关系是在应用程序中强制执行的,但根据我的经验,这种方法很难做到万无一失。

于 2012-08-11T13:18:33.073 回答
1
select ? Meter, cost from Lookup 
where ? > = FROM_METER  
and  ? < = TO_METER  

?用您的参数替换。

于 2012-08-11T08:11:23.740 回答