小编Fra*_*Ong的帖子

查找未找到日期完全匹配的最新行

我正在尝试编写一个查询,尝试提取汇率的值,其中:

  • 查询日期=兑换日期;和
  • 查询币种=指定币种

如果它不包含像 2015 年 9 月 5 日那样的匹配值,它应该从包含值的最后一个日期中提取值。在这种情况下,该值应取自 4-Sep-2015:

 Create Table ExchRate
 (  Exch_ID int,
    Currency varchar(3),
    Exch_value numeric(14,7),
    Exch_date datetime)

Insert INTO ExchRate 
Values (1, 'SGD', 1.4173000, '2015-09-04 00:00:00'),
       (2, 'SGD', 1.4240000, '2015-09-07 00:00:00'),
       (3, 'SGD', 1.4291500, '2015-09-08 00:00:00'),
       (4, 'EUR', 0.8984700, '2015-09-04 00:00:00'),
       (5, 'EUR', 0.8955700, '2015-09-07 00:00:00'),
       (6, 'EUR', 0.8957000, '2015-09-08 00:00:00')
Run Code Online (Sandbox Code Playgroud)

结果应该是:

Currency   Exch_Date   Exch_Value
SGD        2015-09-05  1.4173000
Run Code Online (Sandbox Code Playgroud)

其次,如果我从另一个表加入以计算美元的总成本怎么办?我应该使用什么样的 SQL 语句?在这个SQLFiddle 示例中,它应该为每个具有不同 PO 日期的 PO 提供汇率值。

sql-server t-sql

4
推荐指数
1
解决办法
223
查看次数

标签 统计

sql-server ×1

t-sql ×1