期間の値を返すselectがあります。私がやりたいのは、ルックアップテーブルでこの値を検索し、この期間の値に最も近いyieldの値を返すことです。
例えば
私は米ドルで0.20の期間を持っているので、このコードから派生した以下のルックアップテーブルから:
select fld1_val, mrkt_cap_wght from dw_iss_indx_cnstnt AS ai WITH (NOLOCK)
INNER JOIN dw_issue_dg AS i WITH (NOLOCK)
ON ai.indx_instr_id = i.instr_id
AND ai.as_of_dte > getdate()-2
INNER JOIN dw_issue_alt_id AS ia WITH (NOLOCK)
on ia.instr_id = ai.indx_instr_id
AND id_ctxt_typ = 'Bloomberg ID'
AND denom_curr_cde = 'USD'
これは次を返します:
fld1_val mrkt_cap_wght
0.08 5.0168
0.25 5.03
0.5 5.09
1 5.21
2 5.2
5 5.51
10 5.67
12 5.69
15 5.7
20 5.71
したがって、これに対してルックアップを実行します。0.20は0.25に最も近いため、歩留まりとして5.03を返します。
ただし、ルックアップは完全に一致するものを探しているわけではなく、値に最も近いものを探しているため、これを行う方法がわかりません。どうすればこれを行うことができますか?