2016-11-28 13 views
0

私は有効日付フィールドを持つテーブルAを持っており、別のテーブルBのフィールドが有効日付の範囲と次の表Bの異なるフィールドの値を割り当てる目的)。例えば。SQL Server単一の日付列を使用して日付範囲内のレコードを検索する

A 

[Effective Date] [Cost] 
---------------- ----------------  
1/1/2016   10.25 
5/20/2016   11.75 
B 

[Service Date]  [Cost] 
---------------- ---------------- 
3/1/2016   *should be 10.25* 

事は "終わり" 発効日がないことが、あります。だから私はその可能性についても説明する必要があります。どんなアイデアも高く評価されています。

答えて

0
select 
    b.[Service Date] 
    , Cost = (select top 1 a.Cost 
       from a 
       where a.[Effective Date] <= b.[Service Date] 
       /* assuming there are other important correlating identifiers, 
        you would add something like: */ 
       -- and a.[ServiceId] = b.[ServiceId] 
       order by a.[Effective Date] desc 
      ) 
from b; 
+1

これは11.75を返さないでしょうか? OPが望んでいたものではありません。私はあなたがインナーセレクトでそれ以下であることを意味すると思います。 –

+0

私の矢印を反転しました。ありがとう! – SqlZim

+0

ありがとう!これは正確です。 – RiSt

関連する問題