2014-09-24 83 views
1

我有一個名爲'DEMO'的表。它有一個名爲'SEX'的專欄,有記錄,即'男','女'或空白。在MS Access中使用SQL計算列百分比

我想找個 '男性' 由百分比:

(計數 '男性'/(總記錄數 - 空白記錄))* 100

在一個單一的查詢。

我正在使用MS Access 2010和.accdb文件。

回答

0

創建一個交叉表查詢來分隔這些值。
使用公式創建一個新的查詢,打開總計,以便在回報中只顯示一行。 笨重,但有效。

+0

感謝您的建議。我通常會這樣做,除非我有100個這樣的查詢來創建。這個想法是在Excel中'生成'SQL查詢語句,即單個SQL查詢是理想的。 – pbb 2014-09-25 01:36:01

0

使用Access不能使用CASE WHEǸ語法,雖然IIF是相似的:

SELECT 
    SUM(IIF(SEX = 'Male', 1.0, 0.0)) 
/COUNT(*) AS RATIO 
FROM 
    DEMO 
WHERE 
    SEX <> '' 
+0

感謝您的代碼和幫助。雖然似乎不支持MS Access。 :( – pbb 2014-09-25 01:36:45

+0

'CASE WHEN'必須被'IIF'替換爲Access – psadac 2014-09-25 05:32:35

0

我試過psadac了有輕微的變化,它似乎爲我工作得很好的答案。我正在使用Access 2010.

SELECT Sum(IIf([SEX]= "Male",1,0))/Count(*) AS Ratio 
FROM DEMO 
HAVING (((Sum(IIf([SEX]= "Male",1,0))/Count(*)) Is Not Null));