将列乘以另一个表中的行值

时间:2018-12-18 21:17:27

标签: sql sql-server

我有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 |
----+-------------------------+------------+------+-----+-------+

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

2 个答案:

答案 0 :(得分:3)

加入:

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'

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

答案 1 :(得分:0)

您绝对可以使用子选择来执行此操作。您可能还可以使用“交叉申请”来做到这一点。