我有一张数据表,其中包含多种货币的收入(我们称之为这张TRANSACTION_TABLE
表,列如下:
TRANSACTION_NAME
TRANSACTION_VALUE
CURRENCY
,以及另一个带有汇率 ( EXCHANGE_RATE
) 的表,其列如下:
FROM_CURRENCY (e.g. JPY)
TO_CURRENCY (e.g. USD)
EXCHANGE_RATE (x)
该表至少包含转换为美元的每种货币,但并未详尽列出非美元TO_CURRENCY
价值的汇率。
我想要实现的是一个查询,它将交易转换为任何货币,即使EXCHANGE_RATE
表中没有明确规定,首先将货币转换为美元,然后从美元转换为目标货币。
例如 1000 日元兑英镑:
- 查找 JPY 到 USD 的汇率 - 计算 =
1000 * EXCHANGE_RATE = 9
- 查找英镑兑美元汇率 - 计算 =
9 \ EXCHANGE_RATE = 7
目前,我已经为TRANSACTION_TABLE
on完成了左连接,EXCHANGE_RATE
但我不知道下一步该去哪里。
任何帮助将不胜感激。
到目前为止,我构建的查询(非常基本)如下,我是一个新手 SQL 用户。我首先构建了这个查询以转换为美元,它工作正常(因为我的汇率表包含所有货币到美元的值) - 但在将目标货币设置为英镑时它显然会失败,因为它只会返回空值。
SELECT TRANSACTION_NAME,
SUM (TRANSACTION_VALUE * EXCHANGE_RATE)
AS "REVENUE GBP"
FROM TRANSACTION_TABLE S
LEFT JOIN EXCHANGE_RATE C ON S.CURRENCY = C.FROM_CURRENCY AND C.TO_CURRENCY = 'GBP'
ORDER BY TRANSACTION_NAME