2016-10-01 30 views
0

我的數據庫設計就像是圖像顯示:在SQL數據庫中,如何使用具有不同條件值的一列與具有不同條件值的另一列配對?

enter image description here

數據表是設計一個調查的所有受訪者的答案。我需要的查詢是,例如,

我想知道具有QID = 2和Answers = 26-35以及QID = 4和Answers =「ASHFIELD」條件的所有RID(受訪者ID)。但是,下面的SQL查詢:

select * from RespondentAnswers 
where (QID = 2 and Answers = '26-35') and (QID = 4 and Answers = 'ASHFIELD') 

顯然是不正確的。

總之,我想知道那些年齡在26-35歲之間,居住在「阿什菲爾德」的受訪者。

我的數據庫結構顯示在上圖中。任何人都有解決方案嗎?謝謝!

回答

0

可以使用一組由具有

select rid 
from RespondentAnswers 
where (QID , Answers) in ((2, '26-35'), (4,'ASHFIELD')) 
group by rid 
having count(*) =2; 
+0

仍然出錯------>錯誤-2147217900在預期條件的上下文中指定的非布爾類型的表達式,在','附近。 –

+0

但是,無論如何,謝謝 –

0

感謝@scaisEdge建議,在此基礎上我想出了一個可能的正確答案,這可能有助於誰遇到同樣的問題,其他人:

從RespondentAnswers 選擇RID 其中QID在(2,4)和在回答('26 -35' , 'ASHFIELD') 組由RID 具有COUNT(*)= 2;

我已經在很多條件下測試過,並且所有工作都很好,希望這是我需要的正確答案。

相關問題