2014-11-16 37 views
0

我使用的是Access 2013,並且在名爲Survey的表中有許多是/否字段。我有25個調查問題,人們檢查是否屬實(是),我正在查詢整個數據庫中的字段,以計算每個字段輸入的人數是多少。我的表的子集是:排序訪問中的計數

SurveyID AutoNumber 
MemberID Number 
Question1 Yes/No 
Question2 Yes/No 
Question3 Yes/No 

等等

下運行查詢上述表格,是什麼,我有一個子集,它僅代表三個字段:

SELECT Count(IIf([Survey]![Question1]=True,1,Null)) AS CountOfQuestion1, Count(IIf([Survey]![Question2]=True,1,Null)) AS CountOfQuestion2, Count(IIf([Survey]![Question3]=True,1,Null)) AS CountOfQuestion3 
FROM Survey; 

這工作正常(IIF位是由於訪問和它的奇怪)。我的問題是,我現在怎麼點這個?每個結果都作爲查詢中的一個單獨的字段出現,我需要對所有字段的結果排序,而不僅僅是一個字段。例如,我可能會得到如下:

CountOfQuestion1 34 
CountOfQuestion2 7 
CountOfQuestion3 11 

我需要能夠根據這些數字進行排序這一點,所以我知道這些算不算是最高的。我希望得到:

CountOfQuestion1 34 
CountOfQuestion3 11 
CountOfQuestion2 7 

我覺得我失去了一些明顯的東西,但任何幫助將不勝感激。

謝謝!

+0

使用UNION查詢標準化表格。 – Fionnuala

回答

1

這似乎你想在行中而不是在列中的結果。做到這一點的方法之一是使用單獨的查詢,每題數,然後使用UNION運算符來合併在一起的結果是這樣的:

SELECT 
'Q1' AS Question, Count(IIf([Survey].[Question1]=True,1,Null)) AS QuestionCount 
FROM Survey 
UNION ALL 
SELECT 
'Q2' AS Question, Count(IIf([Survey].[Question2]=True,1,Null)) AS QuestionCount 
FROM Survey 
UNION ALL 
SELECT 
'Q3' AS Question, Count(IIf([Survey].[Question3]=True,1,Null)) AS QuestionCount 
FROM Survey 
ORDER BY QuestionCount DESC 

這將使輸出看起來像這樣:

Question QuestionCount 
-------- ------------- 
Q2  4 
Q1  3 
Q3  2 
+0

是的!就是這樣。我總是忘記聯盟查詢以及如何製作聯合選擇的共同領域。非常感激! – TortillaCurtain

0

在訪問是/否字段可以合計,所以以下應該工作。 作爲CountOfQuestion2選擇ABS(Sum(Question1))CountOfQuestion1,ABS(Sum(Question2)) FROM Survey