2014-09-23 50 views
0

我有要求根據最終結果如LVL,QT_ID和PRODUCT編寫報告。如何在Oracle中使用GROUP BY&MAX()?

我不得不以下條件是

  1. 需要組由QT_ID和PRODUCT。
  2. 對於每個QT_ID和PRODUCT組,每個QT_ID的MAX(LVL)爲LVL。

輸入值低於

----------------------------- 
    LVL  QT_ID  PRODUCT  
----------------------------- 
    2   Q1  P1 
    3   Q1  P2 
    8   Q2  P1 
    9   Q2  P2 
----------------------------- 

預期結果低於

----------------------------- 
    LVL  QT_ID  PRODUCT  
----------------------------- 
    3   Q1  P1 
    3   Q1  P2 
    9   Q2  P1 
    9   Q2  P2 
----------------------------- 

我試過SQL查詢

SELECT MAX(LVL), QT_ID, PRODUCT FROM TMP_TEMP GROUP BY QT_ID, PRODUCT 

我查詢的結果低於

----------------------------- 
    LVL  QT_ID  PRODUCT  
----------------------------- 
    2   Q1  P1 
    8   Q2  P1 
    3   Q1  P2 
    9   Q2  P2 
----------------------------- 

任何人都可以使用上述數據來幫助我獲得預期的輸出?

注意:我不使用子查詢或連接查詢。

+0

每個QT_ID的最大值(LVL)是拉特每個QT_ID和產品組 – 2014-09-23 13:20:47

回答

1

你可以試試這個:

SELECT t2.LVL, t1.QT_ID, t1.PRODUCT 
FROM TMP_TEMP t1 
INNER JOIN 
(
SELECT QT_ID,MAX(LVL) as LVL 
FROM TMP_TEMP 
GROUP BY QT_ID 
) t2 on t1.QT_ID=t2.QT_ID 
+0

我不使用子查詢或連接查詢,becoz我們使用的是非常用於生成動態查詢的舊工具 – 2014-09-23 13:09:01

+0

您的查詢在Oracle客戶端中正常工作。謝謝,並給你一個投票的嘗試。 – 2014-09-23 14:21:26