2
我關注2個表AUF_KOPF
是訂單標題,而AUF_POS
是訂購商品。如何在Oracle SQL中執行復雜的MAX()和GROUP BY?
我想獲得產品在訂單中的訂單項目上使用的最長日期。產品ID存儲在AUF_POS.GLAS1
,AUF_POS.GLAS2
或AUF_POS.GLAS3
中。
我已經創建該查詢僅檢查AUF_POS.GLAS1
:
Select Max(AUF_KOPF.ERFASS_DAT),
AUF_POS.GLAS1
From AUF_KOPF AUF_KOPF
Inner Join AUF_POS AUF_POS On AUF_KOPF.AUF_NR = AUF_POS.AUF_NR
Group By AUF_POS.GLAS1
Order By AUF_POS.GLAS1
結果:
MAX(AUF_KOPF.ERFASS_DAT) GLAS1
07/11/2016 1
06/11/2016 2
03/11/2016 3
09/11/2016 4
07/11/2016 5
問題是,產品ID 1
可能已經比07/11/2016
最近的順序使用在另一個位置AUF_POS.GLAS2
或AUF_POS.GLAS3
。
是否有可能做OR
,或者什麼是寫這個最好的方法?我想遠離3 SELECT
,然後合併它們,因爲看起來很雜亂。
例AUF_KOPF
行:
AUF_NR ERFASS_DAT
1609183 06/01/2016
1609184 06/01/2016
1609185 06/01/2016
1609187 06/01/2016
1609188 06/01/2016
例AUF_POS
行:
AUF_NR AUF_POS GLAS1 GLAS2 GLAS3
1609183 4 4 9 0
1609184 5 4 9 0
1609185 6 4 9 0
1609187 7 4 9 0
1609188 8 4 9 0
在這種情況下所需的輸出將顯示所有產品爲06/01/2016
,但更多的數據會顯示最新的日期,在任何位置,即使用產品ID。
@mathguy這不是一個錯字,對於加入它的必要。 – sagi
呃 - 對不起,你是對的。我不知道我在想什麼! (其實我是這樣做的,我以爲你會像原來那樣使用合格的名字......但是仍然) – mathguy
沒關係,這些名稱導致混淆,colums,別名和表都被調用相同的名稱,即使我迷失在自己的代碼中:P @mathguy – sagi