SQL查询新增汇率换算列:按日期匹配汇率计算美元金额
关联汇率表计算美元金额的SQL实现
核心逻辑
- 关联键:使用日期+本地币种双字段匹配汇率表对应记录,确保取到当日对应币种的准确换算系数
- 计算规则:
Value in USD(美元金额)= 本地币种金额 * 匹配到的USDFactor(美元换算因子),和参考样例计算逻辑一致(5000欧元匹配因子1.01时计算结果为5050美元、6000英镑匹配因子1.111时计算结果为6666美元) - 返回字段:按需求输出
Date(日期)、localCCY(本地币种)、Value in USD(美元金额)三个字段
可直接复用的SQL代码
SELECT t.Date, t.localCCY, t.ValueinlocalCCY * r.USDFactor AS `Value in USD` FROM -- 请将表名替换为业务中存储本地交易数据的实际表名 local_transaction t INNER JOIN -- 请将表名替换为业务中存储汇率数据的实际表名 exchange_rate r ON t.Date = r.Date AND t.localCCY = r.CCY;
不同场景的适配调整
- 若需要保留所有交易记录,不因为缺失汇率数据丢弃记录,可将
INNER JOIN替换为LEFT JOIN,未匹配到汇率的记录美元金额会返回空值 - 若需要对美元金额做精度控制,例如保留2位小数,可将计算逻辑修改为
ROUND(t.ValueinlocalCCY * r.USDFactor, 2) ASValue in USD`` - 若两张表的
Date字段带有时分秒精度,关联前需要先将字段截断为日期格式,例如使用DATE(t.Date) = DATE(r.Date)作为关联条件,避免因时间部分不一致导致匹配失败
内容的提问来源于stack exchange,提问作者Tomasz
相关产品推荐
相关产品推荐

