2011-06-17 100 views
1

我正試圖在下面的代碼中計算唯一出現的客戶端ID。如何計算SQL中數據的唯一出現次數

TRANSFORM Count(Research.Client_ID) AS CountOfClient_ID 
SELECT Research.Treatment, Count(DCount("[Client_ID]","[Letter Status]")) AS [Total Letters Sent] 
FROM Research INNER JOIN [Letter Status] ON Research.Client_ID = [Letter Status].Client_ID 
GROUP BY Research.Treatment 
PIVOT [Letter Status].Letter_Status; 

我認爲需要修改的表達式是:

Total Letters Sent: Count(DCount("[Client_ID]","[Letter Status]")) 

用於DCOUNT函數的典型形式是(表達,域 * 標準 *)。我很確定我需要指定,[Client_ID]在DCount函數的參數標準中應該是唯一的,但我不知道如何。這可能嗎?

+0

DCount的描述當然聽起來像它應該有這種能力,但我給了它幾次嘗試,並不能做到這一點。我建議讓子查詢爲你處理不同的計數,並加入到這個計數中。一個更醜陋的解決方案,但它的工作原理。 – PowerUser

回答

2

如果這個查詢沒有得到你想要的,請告訴我們樣本數據與你想要的不同。

SELECT 
    q.Treatment, 
    Count(*) AS [Total Letters Sent] 
FROM 
    [SELECT DISTINCT 
     Treatment, 
     Client_ID 
    FROM 
     Research 
    ]. AS q 
GROUP BY 
    q.Treatment;