请找到以下示例数据。有 2 个表交易和汇率。如果我需要将交易表转换为美元,那么下面是我尝试过的查询,但它没有提供所需的输出。
交易
货币 | Local_Price |
---|---|
美元 | 1000 |
英镑 | 100 |
欧元 | 10 |
美元 | 100 |
汇率
From_Currency | To_Currency | Exchange_Rate |
---|---|---|
美元 | 英镑 | 0.9 |
欧元 | 美元 | 1.1 |
英镑 | 美元 | 1.3 |
预期产出
货币 | Local_Price | In_USD |
---|---|---|
美元 | 1000 | 1000 |
英镑 | 100 | 130 |
欧元 | 10 | 11 |
美元 | 100 | 100 |
查询 选择货币,Local_price,Local_Price*Exchange_Rate 作为 In_USD 来自交易 T 在 T.Currency=ER.From_Currency 和 To_Currency='USD'
上离开加入 ExchangeRate ER我的汇率表中没有从美元到美元或从欧元到欧元或从英镑到英镑的数据。
请帮我查询所需的输出。
答案 0 :(得分:1)
使用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';