我很抱歉 - 我对 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 还很陌生,我搞乱了一堆东西,但不知道如何同时完成这两件事
加入货币标签并计算附加列:
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 */