2012-02-18 62 views
1

我有下表,我想檢索已採取ENGLISHSCIENCE的學生(STUD_ID)。如果他們採取了這兩個英語和科學,然後不檢索。Oracle查詢檢索記錄時,其中一個條件爲真,但不是當兩個都爲真

所以所期望的輸出是101,102,104,106,107

表實際上是與從表STUD_INFO和主題列第一2列的視圖是從STUD_INFO表內的嵌套表

SELECT groupid, 
     Stud_id, 
     NST.Name 
    FROM STUD_INFO, 
     TABLE(SUBINFO) NST 

任何人都可以幫我一個SQL查詢嗎?有趣的部分是當我使用 Subject = ENGLISH和Subject = Science時,它不檢索任何數據。

groupid Stud_id Subject 
------- ------- -------- 
1 101 ENGLISH 
1 102 MATH 
1 103 ENGLISH 
1 103 SCIENCE 
1 104 ENGLISH 
1 104 MATH 
1 105 PT 
1 105 ENGLISH 
1 105 SCIENCE 
2 106 ENGLISH 
2 107 SCIENCE 
2 108 SCIENCE 
2 108 ENGLISH 
+0

發帖時請勿使用標籤 – 2012-02-18 01:48:44

回答

4

Subject = ENGLISH and Subject = SCIENCE說:「除需要在同一時間是英語和科學」,這絕不是真實的。

select stud_id from your_view 
where subject in ('ENGLISH', 'SCIENCE') 
group by stud_id 
having count(subject) = 1 

這是否適合您?

+0

謝謝,是的,它工作.. mayah – user547453 2012-02-18 02:24:01

相關問題