私は期間値を返すselectを持っています。私がしたいのは、ルックアップテーブルでこの値をルックアップし、この期間値に最も近いyieldの値を返します。tsql - 検索で最も近い数字に一致する
例えば
このコードから派生しているの下に私のルックアップテーブルからだから私は、USD 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を私の歩留まりとして返すだろう。
しかし、私はルックアップが正確に一致するものを探しているわけではないので、これを行う方法がわかりません。どのように私はこれを行うことができる任意のアイデア?
「選択トップ1」と「abs(col-value)による並べ替え」は正しい方向を指していますか? – HABO