0
我有兩個表查詢(甲骨文),讓我們稱之爲A和B.非規範化表
A
ID SEQ
---- ----
1234 1
1235 3
B
ID TYPE SEQ NUM
---- ---- --- ---
1234 ORDER 1 10
1234 MODIFY 1 10
1235 ORDER 1 10
1235 MODIFY 1 10
1235 ORDER 2 11
1235 MODIFY 2 21
1235 ORDER 3 16
所以表A中含有一種獨特的一行上有一個序列號被遞增每次的東西表B中的變化(表B行爲列出歷史表)。因此,在ID 1234的情況下沒有任何變化,因爲行被寫入所以SEQ是1並且表B上的兩行都具有SEQ 1.
但是,ID 1235自第一次寫入以來有三個變化。但在第三次更改中,只更改了ORDER的TYPE。我想要做的是用非規格化結果集表示兩個ID。就像一個樞軸。
所以,如果我要做類似的事情;
SELECT
A.ID
, MIN (CASE WHEN B.TYPE = 'ORDER' THEN NUM END) AS V_ORDER
, MIN (CASE WHEN B.TYPE = 'MODIFY' THEN NUM END) AS V_MODIFY
FROM A
, LEFT JOIN B ON B.ID = A.ID
AND B.SEQ = A.SEQ
GROUP BY A.ID
我只會得到結果在哪裏匹配。
ID V_ORDER V_MODIFY
---- ------- -------
1234 10 10
1235 16 NULL
我真正想要的是看到最大SEQ值的結果;
ID V_ORDER V_MODIFY
---- ------- -------
1234 10 10
1235 16 21
有什麼想法?
由於 Ç
不錯,趕上,謝謝丹! – cbm64