首页 > 解决方案 > SQL 以前的货币汇率

问题描述

我想请你帮忙获取以前的货币汇率。例如。我有两个要加入的表 (Orders和)。CurrencyRates第一个表格包含以欧元为单位的订单,第二个表格包含从欧元到美元的汇率。

在此处输入图像描述

我想在订购日期之前加入它。问题出在订单日期“10.11.2018”的表中具有空率CurrencyRates。我想在这里获得前一天汇率的值(在这种情况下为“09.11.2018”)。对于未来的日期(“18.11.2018”),我想从CurrencyRates表中获得 max(Date) 的值。有没有加入它以获得期望值的方法?

谢谢您的帮助!

标签: sqlsql-servertsql

解决方案


您可以使用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;

推荐阅读