【发布时间】:2012-05-01 23:36:33
【问题描述】:
我有两张桌子:
比尔:
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 并获取汇率。是否可以在同一更新语句中使用修改或其他一些有效方法? (我想避免使用光标)。
【问题讨论】:
-
哦。更正了我回答中的一个愚蠢错误。
标签: sql sybase sql-update