在 SQL 中同时进行 Vlookup 和 Multiply?

问题描述 投票:0回答:1

我很抱歉 - 我对 SQL 还很陌生,并且掌握了基础知识。

我有两张桌子

汇率:

货币 第一季度汇率 第二季度汇率
美元 1 1
澳元 .56 .57
欧元 1.12 1.124

发票:(当地货币)

货币|一月发票| 2月发票|三月发票|四月份发票|


澳元 | 5,000 | 8,000 | 10,000 | 20,000 |

我希望能够通过采用与货币和季度相关的汇率并将其乘以发票编号来制作一列“一月美元”、“二月美元”、“三月美元”、“四月美元”(等等)。

在 Excel 中,我可以做一个简单的操作(在发票表上进行 Vlookup,列货币,查找汇率以查找匹配项。)(Jan 发票)并让它填写名为“Jan USD”的列

我该如何在 SQL 中执行此操作?

谢谢!

老实说,我对 SQL 还很陌生,我搞乱了一堆东西,但不知道如何同时完成这两件事

sql join databricks
1个回答
0
投票

加入货币标签并计算附加列:

WITH    --  S a m p l e    D a t a :
    exchange_rates (CURRENCY, Q1_RATE, Q2_RATE) AS
        ( Select 'USD', 1, 1        From Dual Union All
          Select 'AUD', 0.56, 0.57  From Dual Union All 
          Select 'EUR', 1.12, 1.124 From Dual 
        ),
    invoices (CURRENCY, JAN_INVOICE, FEB_INVOICE, MAR_INVOICE, APR_INVOICE) AS  
        ( Select 'AUD', 5000, 8000, 10000, 20000 FRom Dual )
--   S Q L :
Select       i.CURRENCY, 
           i.JAN_INVOICE, i.JAN_INVOICE * er.Q1_RATE "JAN_INVOICE_USD",
           i.FEB_INVOICE, i.FEB_INVOICE * er.Q1_RATE "FEB_INVOICE_USD",
           i.MAR_INVOICE, i.MAR_INVOICE * er.Q1_RATE "MAR_INVOICE_USD",
           i.APR_INVOICE, i.APR_INVOICE * er.Q2_RATE "APR_INVOICE_USD"
From         invoices i
Inner Join  exchange_rates er ON(er.CURRENCY = i.CURRENCY)
/*      R e s u l t :
CURRENCY JAN_INVOICE JAN_INVOICE_USD FEB_INVOICE FEB_INVOICE_USD MAR_INVOICE MAR_INVOICE_USD APR_INVOICE APR_INVOICE_USD
-------- ----------- --------------- ----------- --------------- ----------- --------------- ----------- ---------------
AUD             5000            2800        8000            4480       10000            5600       20000           11400   */
© www.soinside.com 2019 - 2024. All rights reserved.