mysql - SQL - 按日期获取相关更新的值
问题描述
假设我有 2 张桌子
订单:
> order_id, dollar_amount, purchase_date
>
> 1 10 10-10-2020
>
> 2 30 10-10-2020
>
> 3 10 12-10-2020
>
> 4 40 19-10-2020
我有一个表格,其中包含在不同日期的美元到英镑值的更新
> dollar_to_pound update_date
>
> 1.3 10-10-2020
>
> 1.5 11-10-2020
>
> 0.9 15-10-2020
>
> 1.2 20-10-2020
我的目标是查询英镑价格,使用时间的更新价格,所以我得到这样的东西
order_id dollar_price pound_value calculated
> 1 10 1.3 13
>
> 2 30 1.3 39
>
> 3 10 1.5 15
>
> 4 40 0.9 36
如何连接 2 个表?使用 equals 是行不通的,因为
解决方案
使用连接:
SELECT
o.order_id,
o.dollar_amount,
r.dollar_to_pound AS pound_value
o.dollar_amount * r.dollar_to_pound AS calculated
FROM Orders o
LEFT JOIN Rates r
ON r.update_date = o.purchase_date
ORDER BY
o.order_id;
上面的查询松散地假设费率表将始终填充有订单的所有日期。如果不是,那么给定的订单可能会报告NULL
英镑换算值。您需要定义如何处理这种情况的逻辑。
推荐阅读
- c# - jquery导致错误:单击没有代码的东西时未定义
- python - 扩展熊猫数据框
- excel - 如何将以下 excel 数据复制到不同的工作簿并提示用户保存?
- c# - 在单元测试中同时使用不同参数的多个 Web-API 请求
- powershell - 通过符号名称(键)访问脚本的多个输出
- sql - SQL - 遍历行两次并追溯更改值
- c# - 使用 Windows 服务运行时,Web 服务引用不起作用?
- visual-studio - Visual Studio2017 - 生产力工具
- javascript - 在 chart.js 中为多轴折线图使用自定义数据格式
- javascript - 无法在nodejs中访问同一类中的函数