2011-02-14 102 views
1

我有如下記錄Oracle查詢重複的記錄問題

seqNo desc typeID statusID GroupSeqNo 
1  test 20  30   16 
2  test1 21  42   16 
3  test2 20  43   17 
4  test3 20  30   17 
5  test4 21  42   18 
6  test5 20  43   18 

我加入與其他幾個表此表以獲得typedescription和狀態說明表。

我的問題是如何顯示每個GroupSeqNo只有一條記錄?如果你看一下上面的樣品記錄有來自GroupSeqNo 16,2 3條記錄17和2 18

下面是我使用的查詢:

SELECT DISTINCT SS.GROUPSEQNO,SS.SEQNO,SS.DESC,T.DESC,S.DESC 
FROM STATS SS, DDTYPES T, DDSTATUSES S 
WHERE SS.TYPE_ID=T.TYPE_ID AND SS.STATUS_ID=S.STATUS_ID 
+0

SELECT DISTINCT SS.GROUPSEQNO,SS.DESC,T.DESC,S.DESC FROM STATS SS,DDTYPES T,DDSTATUSES S其中SS.TYPE_ID = T.TYPE_ID AND SS.STATUS_ID = S.STATUS_ID – CarneyCode 2011-02-14 21:41:23

回答

1

加入一個子查詢組STATS表使用GROUP BY並根據您的需要選擇MIN(seqNo)MAX(seqNo)

SELECT SS.GROUPSEQNO, SS.SEQNO, SS.DESC, T.DESC, S.DESC 
FROM STATS SS 
    INNER JOIN DDTYPES T ON SS.TYPE_ID = T.TYPE_ID 
    INNER JOIN DDSTATUSES S SS.STATUS_ID = S.STATUS_ID 
    INNER JOIN (
    SELECT MIN(seqNo) MinID 
    FROM STATS 
    GROUP BY GroupSeqNo 
) g ON SS.seqNo = g.MinID