首页 > 解决方案 > 将列乘以另一个表中的行值

问题描述

我有 2 张桌子。

我的第一张桌子看起来像:

Date        USD    EUR  Count_ids
2018-06-09  5.00    8   1
2018-06-09  15.00   20  3
2018-06-09  5.00    11  1
2018-06-09  45.00   24  2

我的第二张表包含每日汇率;

+----+-------------------------+------------+------+-----+-------+
| Id |          Date           | Convertion | From | To  | Rate  |
+----+-------------------------+------------+------+-----+-------+
|  1 | Wednesday, June 6, 2018 | USD TO EUR | USD  | EUR |  0.88 |
|  2 | Thursday, June 7, 2018  | USD TO EUR | USD  | EUR | 0.89 |
|  3 | Friday, June 8, 2018    | USD TO EUR | USD  | GBP | 1.40 |
|  4 | Saturday, June 9, 2018  | USD TO EUR | USD  | EUR |  0.86 |
----+-------------------------+------------+------+-----+-------+

我想创建一个新列,使用与交易日期相同的汇率日期将 table1 中的 EUR 列转换为 USD。

标签: sqlsql-server

解决方案


加入:

SELECT 
  t.*, 
  t.eur / rates.rate AS priceindollars  
FROM t
INNER JOIN rates
ON rates.Date = t.Date AND rates.From = 'USD' AND rates.To = 'EUR'

假设费率表中有一个日期与第一个表中的日期匹配。


推荐阅读