我沒有 Oracle 9i 不過用 mysql 玩了一下,使用 subquery 的技巧,不知道合不合用囉
我設定欄位名稱為 a, b, c, d
select * from test
where (b,c,d) in (
select b,c,max(d)
from test
where (b,c) in (
select b,max(c) from test group by b
)
group by c);
答案如下, 至於有沒有更好的方法我就沒試囉
| a | b | c | d |
+------+------+------+------+
| 2222 | 1 | 1 | 2 |
| 5555 | 2 | 2 | 2 |
+------+------+------+------+
※ 引述《ultimateyes (CmLBat)》之銘言:
: 您好,小妹用Oracle 9i
: 我有一個table [version],
: 欄位有[版本編號],[項目編號],[母版本],[子版本]四個欄位
: 結果要依[項目編號]分組,找到每一組的[母版本]最大值,再找[子版本]的最大值,
: 顯示出[版本編號]
: 例如:
: [版本編號][項目編號][母版本][子版本]
: -------------------------------------
: [1111] [1] [1] [1]
: [2222] [1] [1] [2]
: [3333] [2] [1] [1]
: [4444] [2] [2] [1]
: [5555] [2] [2] [2]
: 最後要列出
: [2222]和[5555]
: 我用了group by,order by,rownum等都試過了...試不出我要的答案
: 想問問大家單純用SQL指令語法怎麼寫(不搭配像PHP,VB等程式碼)?
: 謝謝大家了!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.229.85.166