1
我正在製作一個Excel Oracle Query來實現以下功能。Excel Oracle查詢組功能不允許在這裏
我有兩個表,用命令一個表,並在開具發票和一張桌子與匯率和從該日起即率適用:
表JOBS:
ID INVOICE_DATE
1 05-05-2017
2 05-03-2017
3 04-28-2017
4 04-15-2017
5 04-01-2017
6 03-28-2017
7 03-15-2017
8 03-02-2017
9 02-27-2017
表EXCHG:
CURR RATE DATE_FROM
USD 0.92 05-01-2017
GBP 1.21 05-01-2017
USD 0.95 04-04-2017
GBP 1.18 04-04-2017
USD 0.94 04-01-2017
GBP 1.19 04-01-2017
USD 0.91 03-03-2017
GBP 1.17 03-03-2017
USD 0.92 03-01-2017
GBP 1.20 03-01-2017
USD 0.93 02-01-2017
GBP 1.21 02-01-2017
我想獲得帶有發票日期和當時適用匯率的訂單。
目前,我有以下SQL查詢:
SELECT JOBS.ID, JOBS.INVOICE_DATE, EXCHG.CURR, EXCHG.RATE, EXCHG.DATE_FROM
FROM LOC.JOBS JOBS
LEFT JOIN LOC.EXCHG EXCHG
ON (JOBS.INVOICE_DATE-EXCHG.DATE_FROM) >= 0) AND (JOBS.INVOICE_DATE-EXCHG.DATE_FROM <= 31)
WHERE
EXCHG.CURR = 'USD'
,這是除了我得到一些訂單,兩個或兩個以上的匯率一倍做工精細:
ID INVOICE_DATE RATE_USD DATE_FROM
1 5/5/2017 0.92 5/1/2017
1 5/5/2017 0.95 4/4/2017
2 5/3/2017 0.92 5/1/2017
2 5/3/2017 0.95 4/4/2017
3 4/28/2017 0.95 4/4/2017
3 4/28/2017 0.94 4/1/2017
4 4/15/2017 0.95 4/4/2017
4 4/15/2017 0.94 4/1/2017
5 4/1/2017 0.94 4/1/2017
5 4/1/2017 0.91 3/3/2017
5 4/1/2017 0.92 3/1/2017
6 3/28/2017 0.91 3/3/2017
6 3/28/2017 0.92 3/1/2017
7 3/15/2017 0.91 3/3/2017
7 3/15/2017 0.92 3/1/2017
8 3/2/2017 0.92 3/1/2017
8 3/2/2017 0.93 2/1/2017
9 2/27/2017 0.93 2/1/2017
我想什麼得到是:
ID INVOICE_DATE RATE_USD DATE_FROM
1 5/5/2017 0.92 5/1/2017
2 5/3/2017 0.92 5/1/2017
3 4/28/2017 0.95 4/4/2017
4 4/15/2017 0.95 4/4/2017
5 4/1/2017 0.94 4/1/2017
6 3/28/2017 0.91 3/3/2017
7 3/15/2017 0.91 3/3/2017
8 3/2/2017 0.92 3/1/2017
9 2/27/2017 0.93 2/1/2017
我想弄清楚如何做到這一點,不知何故,我需要選擇這兩個語句的結果最低:
JOBS.INVOICE_DATE-EXCHG.DATE_FROM >= 0 AND JOBS.INVOICE_DATE-EXCHG.DATE_FROM <= 31
最好我能想出是:
SELECT JOBS.ID, JOBS.INVOICE_DATE, EXCHG.CURR, EXCHG.RATE, EXCHG.DATE_FROM
FROM LOC.JOBS JOBS
LEFT JOIN LOC.EXCHG EXCHG
ON (MIN(JOBS.INVOICE_DATE-EXCHG.DATE_FROM) AND (JOBS.INVOICE_DATE-EXCHG.DATE_FROM >= 0))
WHERE
EXCHG.CURR = 'USD'
但是這給了我以下錯誤: [甲骨文] [ODBC] [奧拉] ORA-00934:此處不允許使用組功能
有人可以爲我解決這個問題嗎?我會很開心。
弗洛里斯
PS。這這裏是我的第一個問題,所以我希望這是好的:)
謝謝鮑勃,但我非常想在EXCHG表中添加一列是不可能的。該表不在我的控制之下,並且基於不再更新的非常舊的系統。你有什麼其他的建議? – Floris