SQL以前的货币汇率

时间:2018-11-16 16:26:47

标签: sql sql-server tsql

在向您询问以前的货币汇率时,我想向您寻求帮助。 例如。我有两个要联接的表(OrdersCurrencyRates)。第一个表格包含以EUR表示的订单,第二个表格包含从EUR到USD的货币汇率。

enter image description here

我想在订购日期之前加入。问题出在CurrencyRates表中具有零利率的订单日期“ 10.11.2018”。我想从前一天的汇率(在这种情况下为“ 09.11.2018”)获得此值,而在将来的日期(“ 18.11.2018”),我希望从CurrencyRates开始具有max(Date)的值表。是否有任何方法可以将其连接以具有期望值?

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用cross apply

select o.*, cr.date, cr.rate, cr.currency
from orders o cross apply
     (select top (1) cr.*
      from currencyrates cr
      where cr.date <= o.orderdate
      order by cr.date desc
     ) cr;