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 に答える