sql - 将列乘以另一个表中的行值
问题描述
我有 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。
解决方案
加入:
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'
假设费率表中有一个日期与第一个表中的日期匹配。
推荐阅读
- angular - 有没有办法等待 DOM 在 Angular 中更新?
- ios - 我可以立即停止第一个 UIView 动画并在同一视图上启动第二个动画吗?
- python - 如何在 Pytorch 中反转布尔值的张量?
- php - 适用于 Android 的 PHP 多语言 Web 服务
- graphql - 仅在 graphql 需要的情况下如何获取特定字段?
- c# - Application.Current.MainWindow.Topmost = true 仅适用于我的应用程序第一次运行
- python - 打印列表中的所有字符串元素,Python 中的一个除外
- javascript - 如何在 Angular 7 中使用三个 JS
- java - 找不到我的 Java 纸牌游戏的 hasNext() 和 next() 方法的符号
- tensorflow - 烧瓶服务器启动后自动加载