2009-02-26 16 views
1

MS AccessでCount(Distinct [f])の効果を簡単に複製する方法はありますか?例えばMS Accessの重複カウント(Distinct [f])

データテーブルの単一の紹介(これらの数千が実際のデータである)のために:

| Referral ID | Number of Assessments | Teams Assessing | Services Provided | No Teams Providing 
| 1   | 2      | 2    | 4     | 3 
を:

| Referral ID | Assessment Date | Assessment Team | Service Provided | Service Team 
| 1   | 02/01/2008  | AAA    | BBB    | AAA 
| 1   | 02/01/2008  | AAA    | CCC    | AAA 
| 1   | 02/01/2008  | AAA    | DDD    | BBB 
| 1   | 03/01/2008  | BBB    | EEE    | CCC 

私が与えるクエリをしたいです

何か助けに感謝します!

答えて

4

これは多少複雑ですが、適切かもしれません。あなたのテーブルはImpです。

SELECT DISTINCT a.[Referral ID], b.CountOfADate, c.CountOfATeam, d.CountOfService, e.CountOfSTeam 

FROM (((imp AS a 

INNER JOIN 
    (SELECT b1.[Referral ID], Count(b1.ADate) AS CountOfADate 
    FROM (SELECT DISTINCT t.[Referral ID], t.[Assessment Date] As ADate FROM imp As t) AS b1 
    GROUP BY b1.[Referral ID]) AS b 
ON a.[Referral ID] = b.[Referral ID]) 

INNER JOIN 
    (SELECT c1.[Referral ID], Count(c1.ATeam) AS CountOfATeam 
    FROM (SELECT DISTINCT t.[Referral ID], t.[Assessment Team] As ATeam FROM imp As t) AS c1 
    GROUP BY c1.[Referral ID]) AS c 
ON a.[Referral ID] = c.[Referral ID]) 

INNER JOIN 
    (SELECT d1.[Referral ID], Count(d1.Service) AS CountOfService 
    FROM (SELECT DISTINCT t.[Referral ID], t.[Service Provided] As Service FROM imp As t) AS d1 
    GROUP BY d1.[Referral ID]) AS d 
ON a.[Referral ID] = d.[Referral ID]) 

INNER JOIN 
    (SELECT e1.[Referral ID], Count(e1.STeam) AS CountOfSTeam 
    FROM (SELECT DISTINCT t.[Referral ID], t.[Service Team] As STeam FROM imp As t) AS e1 
    GROUP BY e1.[Referral ID]) AS e 
ON a.[Referral ID] = e.[Referral ID]; 
+0

...応答のための おかげで私は、ネストされた選択を避けるために期待していた、私は認めなければならないが、それはそれはAccessで実行する必要がある方法だ場合、それはそれは行われる必要がある方法です! – mavnn

+0

クロスタブでこれを行うことができない何らかの理由はありますか? –

+0

列ヘッダーの数に制限がありますか?そのため、いくつかのクロス集計が必要になるでしょう。 – Fionnuala

関連する問題