sql - 货币转换
问题描述
请找到以下示例数据。有 2 个表交易和汇率。如果我需要将交易表转换为美元,那么下面是我尝试过的查询,但它没有给出所需的输出。
交易
货币 | Local_Price |
---|---|
美元 | 1000 |
英镑 | 100 |
欧元 | 10 |
美元 | 100 |
汇率
From_Currency | To_Currency | 汇率 |
---|---|---|
美元 | 英镑 | 0.9 |
欧元 | 美元 | 1.1 |
英镑 | 美元 | 1.3 |
预期产出
货币 | Local_Price | In_USD |
---|---|---|
美元 | 1000 | 1000 |
英镑 | 100 | 130 |
欧元 | 10 | 11 |
美元 | 100 | 100 |
查询 Select Currency,Local_price, Local_Price*Exchange_Rate as In_USD from Transaction T left join ExchangeRate ER on T.Currency=ER.From_Currency and To_Currency='USD'
我的汇率表中没有从美元到美元或欧元到欧元或英镑到英镑的数据。
请帮助我查询所需的输出。
解决方案
使用coalesce()
:
Select Currency,Local_price,
( Local_Price * coalesce(Exchange_Rate, 1) ) as In_USD
from Transaction T left join
ExchangeRate ER
on T.Currency = ER.From_Currency and To_Currency = 'USD';
推荐阅读
- android - 删除android中折叠工具栏布局内进度条中的滚动效果
- php - 如何在单个 foreach 中使用两个数组
- php - Laravel 中的一对一关系总是需要 first() 吗?
- ios - 我是否需要在 Sign in with Apple 中完成 OAuth 流程(访问令牌的交换码)?
- python - OSError、Type22Error 和其他一些让我难过的问题
- javascript - 我怎样才能得到数据 int Jade
- javascript - reactjs.org 代码中的示例 ReactJS 无法与 JSX 一起使用
- html - li 元素堆叠而不对齐
- c - 你会如何解释这个反汇编列表?
- automated-tests - 在赛普拉斯的同一测试中两次调用 cy.server() 是否可以