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