私は2つのテーブルを持っています:
明細書 :
create table Bill(
BillDate datetime,
Amount decimal(10,2) ,
BillCurrency varchar(3) ,
ReportingCurrency decimal(10,2))
為替レート :
create table FxRate(
RateDate datetime,
SourceCurrency varchar(3),
TargetCurrency varchar(3),
ExchangeRate decimal(15,4))
これは私がやりたいことです:
Bill テーブルを次のように更新したい
update Bill
set ReportingCurrency = FxRate.ExchangeRate * Bill.Amount
from FxRate
where FxRate.RateDate = Bill.BillDate
この更新では、その特定の日付のエントリを持つすべての行が新しいレポート通貨データを取得します。Bill テーブルには更新の対象となる行が複数ある可能性があるため、次の問題があります。
FxRate テーブルに (その日付の) エントリがなかった行の場合、ReportingCurrency は NULL になります。に戻ってnearest <= RateDate
為替レートを取得したいのですが、同じ update ステートメントまたは他の効率的な方法で変更を行うことは可能ですか? (カーソルを避けたい)。