Sql 合并两个表并计算金额(货币换算)
我有一张表,其中包含货币汇率,还有一张表包含换算金额 货币表 此表将显示货币的每日汇率。为了便于映射,我只包含了一个日期的费率Sql 合并两个表并计算金额(货币换算),sql,oracle,Sql,Oracle,我有一张表,其中包含货币汇率,还有一张表包含换算金额 货币表 此表将显示货币的每日汇率。为了便于映射,我只包含了一个日期的费率 Branch Code Rate Date A 0 1 30/10/2019 A 1 200 30/10/2019 A 2 300 30/10/2019 B 0 1 30/10/2019 B 1
Branch Code Rate Date
A 0 1 30/10/2019
A 1 200 30/10/2019
A 2 300 30/10/2019
B 0 1 30/10/2019
B 1 10 30/10/2019
B 2 30 30/10/2019
Branch Code Amt Date
A 0 1000 30/10/2019
A 1 2000 30/10/2019
A 2 3000 30/10/2019
A 2 4000 30/10/2019
A 2 5000 30/10/2019
A 0 6000 30/10/2019
B 0 7000 30/10/2019
B 0 8000 30/10/2019
B 0 9000 30/10/2019
B 2 10000 30/10/2019
换算金额表
此表将包含每日交换的详细信息。为了便于映射,我只包含了一个日期的事务
Branch Code Rate Date
A 0 1 30/10/2019
A 1 200 30/10/2019
A 2 300 30/10/2019
B 0 1 30/10/2019
B 1 10 30/10/2019
B 2 30 30/10/2019
Branch Code Amt Date
A 0 1000 30/10/2019
A 1 2000 30/10/2019
A 2 3000 30/10/2019
A 2 4000 30/10/2019
A 2 5000 30/10/2019
A 0 6000 30/10/2019
B 0 7000 30/10/2019
B 0 8000 30/10/2019
B 0 9000 30/10/2019
B 2 10000 30/10/2019
结果表
Branch Code Date Amt Branch Code Rate Total
A 0 30/10/2019 1000 A 0 1 1000
A 1 30/10/2019 2000 A 1 200 400000
A 2 30/10/2019 3000 A 2 300 900000
A 2 30/10/2019 4000 A 2 300 1200000
A 2 30/10/2019 5000 A 2 300 1500000
A 0 30/10/2019 6000 A 1 1 6000
B 0 30/10/2019 7000 A 1 200 1400000
B 0 30/10/2019 8000 A 1 200 1600000
B 0 30/10/2019 9000 A 1 200 1800000
B 2 30/10/2019 10000 A 2 300 3000000
我只能得到下面的结果表
Branch Code Date Amt Branch Code Rate Total
A 0 30/10/2019 1000 A 0 1 1000
A 1 30/10/2019 2000 A 1 200 400000
A 2 30/10/2019 3000 A 2 300 900000
A 2 30/10/2019 4000 A 2 300 1200000
A 2 30/10/2019 5000 A 2 300 1500000
A 0 30/10/2019 6000 A 1 1 6000
B 0 30/10/2019 7000 A 1 1 7000
B 0 30/10/2019 8000 A 1 1 8000
B 0 30/10/2019 9000 A 1 1 9000
B 2 30/10/2019 10000 A 2 300 3000000
我使用的查询
SELECT
*
FROM
converted_amounts_table t1
LEFT OUTER JOIN (
SELECT
(
CASE WHEN code = '0'
AND branch = 'B' THEN '1' ELSE code END
) AS new_code,
branch,
date,
rate
FROM
currency_table
) t2 ON (
t1.date = t2.date
AND t1.code = t2.new_code
)
WHERE
t1.date >= '01-Jan-2019'
AND t1.date <= '30-Sep-2019'
我能够得到结果表
Branch Code Date Amt Branch Code Rate Total
A 0 30/10/2019 1000 A 0 1 1000
A 1 30/10/2019 2000 A 1 200 400000
A 2 30/10/2019 3000 A 2 300 900000
A 2 30/10/2019 4000 A 2 300 1200000
A 2 30/10/2019 5000 A 2 300 1500000
A 0 30/10/2019 6000 A 1 1 6000
B 0 30/10/2019 7000 A 1 1 7000
B 0 30/10/2019 8000 A 1 1 8000
B 0 30/10/2019 9000 A 1 1 9000
B 2 30/10/2019 10000 A 2 300 3000000
我能够得到结果表
Branch Code Date Amt Branch Code Rate Total
A 0 30/10/2019 1000 A 0 1 1000
A 1 30/10/2019 2000 A 1 200 400000
A 2 30/10/2019 3000 A 2 300 900000
A 2 30/10/2019 4000 A 2 300 1200000
A 2 30/10/2019 5000 A 2 300 1500000
A 0 30/10/2019 6000 A 1 1 6000
B 0 30/10/2019 7000 A 1 1 7000
B 0 30/10/2019 8000 A 1 1 8000
B 0 30/10/2019 9000 A 1 1 9000
B 2 30/10/2019 10000 A 2 300 3000000
这还不是一个完整的问题,因为您没有在问题中直接包含相关数据。请删除图像链接,并将此信息作为文本包含。我已更新了表格。请看一看。嗨@SAMROX,这里有一些我认为你应该在你的问题中编辑的东西:注意:有一个日期栏,我没有包括在哪里?在哪张桌子上?到目前为止,您尝试了什么代码?不清楚你想要什么结果。嗨,Vboksic,我已经更新了表格…@SAMROX。您应该显示您正在使用的查询。这还不是一个完整的问题,因为您没有在问题中直接包含相关数据。请删除图像链接,并将此信息作为文本包含。我已更新了表格。请看一看。嗨@SAMROX,这里有一些我认为你应该在你的问题中编辑的东西:注意:有一个日期栏,我没有包括在哪里?在哪张桌子上?到目前为止,您尝试了什么代码?不清楚你想要什么结果。嗨,Vboksic,我已经更新了表格…@SAMROX。您应该显示您正在使用的查询。嗨@SAMROX,首先欢迎您观看演示。其次,您不需要这部分代码,因为它什么也不做:t1.date2='30-Oct-2019'和。干杯嗨@SAMROX,首先欢迎您观看演示。其次,您不需要这部分代码,因为它什么也不做:t1.date2='30-Oct-2019'和。干杯