2009-02-26 11 views
1

Gibt es eine schnelle Möglichkeit, den Effekt des Count (Distinct [f]) ​​in MS Access zu duplizieren?Doppelte Anzahl (Distinct [f]) ​​in MS Access

Zum Beispiel:

Datentabelle für eine einzelne Überweisung (es gibt ein paar Tausend davon in den realen Daten):

| 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 

Ich möchte eine Abfrage, die gibt:

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

Jede Hilfe wird geschätzt!

Antwort

4

Dies ist etwas kompliziert, könnte aber passen. Imp ist dein Tisch.

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

Ich hatte gehofft, verschachtelte wählt zu vermeiden, muss ich zugeben, aber wenn das der Weg ist, muss es in Access getan werden, das ist so, wie es getan werden muss ... Vielen Dank für die Antwort! – mavnn

+0

Gibt es einen Grund, warum dies nicht mit einer Kreuztabelle möglich ist? –

+0

Die Anzahl der Spaltenüberschriften ist begrenzt, oder? Daher wären mehrere Kreuztabellen erforderlich, ja? – Fionnuala