2011-06-17 6 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; 
関連する問題