sql - SQL 以前的货币汇率
问题描述
我想请你帮忙获取以前的货币汇率。例如。我有两个要加入的表 (Orders
和)。CurrencyRates
第一个表格包含以欧元为单位的订单,第二个表格包含从欧元到美元的汇率。
我想在订购日期之前加入它。问题出在订单日期“10.11.2018”的表中具有空率CurrencyRates
。我想在这里获得前一天汇率的值(在这种情况下为“09.11.2018”)。对于未来的日期(“18.11.2018”),我想从CurrencyRates
表中获得 max(Date) 的值。有没有加入它以获得期望值的方法?
谢谢您的帮助!
解决方案
您可以使用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;
推荐阅读
- c - C:如何过滤正在读入管道的值
- asp.net - asp.net - 具有关系数据的 LINQ 查询
- android - Android Exoplayer:“onPlayerStateChanged(boolean playWhenReady, int playbackState)”方法中的“playWhenReady”是什么
- json - 从网站获取 JSON 时出现错误
- r - R:在所有父环境中绑定的替代变量
- google-analytics - 从 Google Analytics 中消除机器人流量
- c# - 如何处理 MVVM 模式中嵌套 ListView 的 ItemClick?
- docker - IBM 云:无法构建应用程序
- node.js - 在 Google Cloud 中使用 Node.js API 将 IP 附加到 VM 实例
- angular - angular - 安全地获取延迟加载的 DOM 元素的引用