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'和。干杯