首页 > 解决方案 > 货币转换

问题描述

请找到以下示例数据。有 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'

我的汇率表中没有从美元到美元或欧元到欧元或英镑到英镑的数据。

请帮助我查询所需的输出。

标签: sqlsql-server

解决方案


使用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';

推荐阅读