COUNT and DISTINCT in Access

M

mehstg1319

Hi there

I am trying to build a query in Access that uses Count and Distinct to
count unique records:

The code without the Distinct is as follows:
SELECT Count(tblyearlydetails.memberid) AS [Number of Members]
FROM TblMember, TblFlareEntry, tblFlare, tblyearlydetails, TblStatus
WHERE (((TblMember.TrueMember)=Yes) AND ((TblFlareEntry.memberid)=
[tblmember].[memberid]) AND ((TblFlareEntry.FlareID)=[TblFlare].
[FlareID]) AND ((tblFlare.FlareID)=[TblStatus].[FlareID]) AND
((TblMember.memberid)=[tblyearlydetails].[memberid]) AND
((tblyearlydetails.status)=[forms]![FrmReport_Flare]![Cbostatus]) AND
((tblFlare.[Registration Year])=[Forms]![FrmReport_Flare]![cboDate2])
AND ((TblStatus.[entered round 1])=Yes));

I cannot work out how to get the Distinct working, as I understand in
Access it is not possible to just write SELECT Count(DISTINCT
tblyearlydetails.memberid)

Any help would be much appreciated.


Paul
 
M

Marshall Barton

mehstg1319 said:
I am trying to build a query in Access that uses Count and Distinct to
count unique records:

The code without the Distinct is as follows:
SELECT Count(tblyearlydetails.memberid) AS [Number of Members]
FROM TblMember, TblFlareEntry, tblFlare, tblyearlydetails, TblStatus
WHERE (((TblMember.TrueMember)=Yes) AND ((TblFlareEntry.memberid)=
[tblmember].[memberid]) AND ((TblFlareEntry.FlareID)=[TblFlare].
[FlareID]) AND ((tblFlare.FlareID)=[TblStatus].[FlareID]) AND
((TblMember.memberid)=[tblyearlydetails].[memberid]) AND
((tblyearlydetails.status)=[forms]![FrmReport_Flare]![Cbostatus]) AND
((tblFlare.[Registration Year])=[Forms]![FrmReport_Flare]![cboDate2])
AND ((TblStatus.[entered round 1])=Yes));

I cannot work out how to get the Distinct working, as I understand in
Access it is not possible to just write SELECT Count(DISTINCT
tblyearlydetails.memberid)


First you need to select the data, then you can count it.

These operations can be combined by using a subquery
something like:
SELECT Count(*) As [Number of Members]
FROM (SELECT DISTINCT ...)
or it may be easier/clearer to use two separate queries.
 
M

mehstg1319

mehstg1319 said:
I am trying to build a query in Access that uses Count and Distinct to
count unique records:
The code without the Distinct is as follows:
SELECT Count(tblyearlydetails.memberid) AS [Number of Members]
FROM TblMember, TblFlareEntry, tblFlare, tblyearlydetails, TblStatus
WHERE (((TblMember.TrueMember)=Yes) AND ((TblFlareEntry.memberid)=
[tblmember].[memberid]) AND ((TblFlareEntry.FlareID)=[TblFlare].
[FlareID]) AND ((tblFlare.FlareID)=[TblStatus].[FlareID]) AND
((TblMember.memberid)=[tblyearlydetails].[memberid]) AND
((tblyearlydetails.status)=[forms]![FrmReport_Flare]![Cbostatus]) AND
((tblFlare.[Registration Year])=[Forms]![FrmReport_Flare]![cboDate2])
AND ((TblStatus.[entered round 1])=Yes));
I cannot work out how to get the Distinct working, as I understand in
Access it is not possible to just write SELECT Count(DISTINCT
tblyearlydetails.memberid)

First you need to select the data, then you can count it.

These operations can be combined by using a subquery
something like:
        SELECT Count(*) As [Number of Members]
        FROM (SELECT DISTINCT ...)
or it may be easier/clearer to use two separate queries.

Thank you

I had looked into this but didnt quite understand where the
tblyearlydetails.memberid would fit in if I used

SELECT Count(*) As [Number of Members]
FROM (SELECT DISTINCT ...)


Paul
 
M

Marshall Barton

mehstg1319 said:
mehstg1319 said:
I am trying to build a query in Access that uses Count and Distinct to
count unique records:
The code without the Distinct is as follows:
SELECT Count(tblyearlydetails.memberid) AS [Number of Members]
FROM TblMember, TblFlareEntry, tblFlare, tblyearlydetails, TblStatus
WHERE (((TblMember.TrueMember)=Yes) AND ((TblFlareEntry.memberid)=
[tblmember].[memberid]) AND ((TblFlareEntry.FlareID)=[TblFlare].
[FlareID]) AND ((tblFlare.FlareID)=[TblStatus].[FlareID]) AND
((TblMember.memberid)=[tblyearlydetails].[memberid]) AND
((tblyearlydetails.status)=[forms]![FrmReport_Flare]![Cbostatus]) AND
((tblFlare.[Registration Year])=[Forms]![FrmReport_Flare]![cboDate2])
AND ((TblStatus.[entered round 1])=Yes));
I cannot work out how to get the Distinct working, as I understand in
Access it is not possible to just write SELECT Count(DISTINCT
tblyearlydetails.memberid)

First you need to select the data, then you can count it.

These operations can be combined by using a subquery
something like:
        SELECT Count(*) As [Number of Members]
        FROM (SELECT DISTINCT ...)
or it may be easier/clearer to use two separate queries.

Thank you

I had looked into this but didnt quite understand where the
tblyearlydetails.memberid would fit in if I used

SELECT Count(*) As [Number of Members]
FROM (SELECT DISTINCT ...)


If that's the field that is used to determine what is
distinct, then you probably want:

SELECT Count(*) As [Number of Members]
FROM (SELECT DISTINCT tblyearlydetails.memberid
FROM ...
WHERE ...)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top