2012-03-23 20 views
0

私は次の文章の異なるバリエーションを試しましたが、結果は何をしなければならないかの半分です。より大きい値を選択してくださいORACLE

SELECT DISTINCT COUNT(*) AS NO_RESERVATIONS, HG.RESV_ID, HR.BOOKING_CUS_ID AS BOOKED_BY, C.CUS_NAME 
FROM HOLIDAY_RESERVATION HR INNER JOIN(HOLIDAY_GROUP HG INNER JOIN CUSTOMER C 
ON HG.CUS_ID = C.CUS_ID) 
ON HR.BOOKING_CUS_ID = HG.CUS_ID 
WHERE HR.RESV_ID >= 2 
GROUP BY HG.RESV_ID, HR.BOOKING_CUS_ID, C.CUS_NAME; 

利回り

NO_RESERVATIONS RESV_ID BOOKED_BY CUS_NAME 
--------------- ---------- ---------- -------------------- 
       1   3   5 Beatrice P. Rosa 
       1   8   15 Phillip B. Fleming 
       1   7   13 Debra V. Key 
       1   4   7 Magee A. Pace 
       2   11   3 Hadassah T. Hebert 
       1   5   9 Portia D. Melton 
       2   2   3 Hadassah T. Hebert 
       1   6   11 Larissa X. Boyer 
       1   9   17 Wayne F. Burnett 
       1   10   19 Eleanor J. Padilla 

10 rows selected. 

それだけANSWERおかげブライアン

ハダーサT.エベールこの場合には、二つ以上の予約をした者を示すべきですヘルプのため

SELECT DISTINCT C.CUS_NAME AS BOOKED_BY, COUNT(*) AS NO_RESERVATIONS 
FROM HOLIDAY_RESERVATION HR INNER JOIN(HOLIDAY_GROUP HG INNER JOIN CUSTOMER C 
ON HG.CUS_ID = C.CUS_ID) 
ON HR.BOOKING_CUS_ID = HG.CUS_ID 
GROUP BY HG.RESV_ID, HR.BOOKING_CUS_ID, C.CUS_NAME 
HAVING count(*) > 1; 

がグループ化された結果をフィルタリングするに

BOOKED_BY   NO_RESERVATIONS 
-------------------- --------------- 
Hadassah T. Hebert     2 

答えて

5

をもたらし、あなたはHAVINGステートメントを使用する必要があります。たとえば、あなたのクエリは次のようになります:

SELECT DISTINCT COUNT(*) AS NO_RESERVATIONS, HG.RESV_ID, HR.BOOKING_CUS_ID AS BOOKED_BY, C.CUS_NAME 
FROM HOLIDAY_RESERVATION HR INNER JOIN(HOLIDAY_GROUP HG INNER JOIN CUSTOMER C 
ON HG.CUS_ID = C.CUS_ID) 
ON HR.BOOKING_CUS_ID = HG.CUS_ID 
WHERE HR.RESV_ID >= 2 
GROUP BY HG.RESV_ID, HR.BOOKING_CUS_ID, C.CUS_NAME 
HAVING count(*) > 1; 
+0

ありがとう、私は決して忘れないでしょう:) –

関連する問題