2013-04-09 64 views
0

我有以下查詢:如何使用where子句計算多個列? (SQL)

SELECT count(Committees) 
    FROM [Annual Questionnaire] 
    WHERE Committees=TRUE; 

然而,我想包括其他列中的結果如保險,平等並在數值爲真時計算例如保險=真。並非表格中的所有列都必須計算在內。

我覺得僞查詢應爲:

SELECT count(Committees), 
     count(Insurance) 
FROM [Annual Questionnaire] 
WHERE Committees=TRUE 
    AND Insurance=TRUE; 

^這不工作,因爲它選擇行只有委員會和保險是真

基本上,我怎麼算指定值爲真的列?

回答

3

,你可以這樣做

SELECT 
    SUM(IIF(Committees=True, 1, 0)) 
    , SUM(IIF(Insurance=True, 1, 0)) 
FROM [Annual Questionnaire] 
+0

感謝。我在sql上有點生疏。對於獎勵積分,這是什麼情況下的語法? http://stackoverflow.com/questions/12789396/how-to-get-multiple-counts-with-one-sql-query – Sheldon 2013-04-09 10:23:07

+1

訪問不具有大小寫語法 – 2013-04-09 10:45:20

1

如果您在WHERE子句中同時指定了這兩個列,則只會返回兩列均爲列的行爲true。 請記住,執行的順序是在Select之前執行的Where子句,因此它將根據您擁有的數據過濾掉數據,然後選擇您要求它選擇的任何內容。

這是執行的順序:

FROM clause 
WHERE clause 
GROUP BY clause 
HAVING clause 
SELECT clause 
ORDER BY clause 

已經有類似的主題:How to get multiple counts with one SQL query?