Access SQL查询返回计数字段的错误值

Access SQL查询返回计数字段的错误值,sql,ms-access,count,ms-access-2010,Sql,Ms Access,Count,Ms Access 2010,我正在尝试进行一个SQL查询,得到的是客户的姓名加上一列c,这是计数连接到客户的转介的行数。[客户ID]=转介。[转介自]和转介。[使用我们的服务]=True 第二列为ofc2,这是连接到客户的转介的行数。[客户ID]=转介。[转介自]和转介。[有效转介]=True 此查询工作正常,但在c2列中返回了错误的数字。它应该是1时返回2 SELECT Customers.[Customer ID], Customers.[First Name], Customers.[Last Name], Cou

我正在尝试进行一个
SQL
查询,得到的是客户的姓名加上一列
c
,这是
计数
连接到
客户的转介的行数。[客户ID]=转介。[转介自]
转介。[使用我们的服务]=True

第二列为of
c2
,这是连接到
客户的转介的行数。[客户ID]=转介。[转介自]
转介。[有效转介]=True

此查询工作正常,但在
c2
列中返回了错误的数字。它应该是1时返回2

SELECT 
Customers.[Customer ID], Customers.[First Name], Customers.[Last Name], Count(r.[Valid Referral]) AS c, Count(rr.[Used Our Service]) AS c2
FROM (Customers 
INNER JOIN Referrals r ON Customers.[Customer ID] = r.[Referred From] AND (r.[Valid Referral])=True)
INNER JOIN Referrals rr ON Customers.[Customer ID] = rr.[Referred From] AND (rr.[Used Our Service])=True
WHERE (r.[Valid Referral])=True
GROUP BY Customers.[Customer ID], Customers.[First Name], Customers.[Last Name]
客户表:

转介表格:

结果表:


我建议您将
SUM
Iif
一起使用,而不是两次加入同一个表,如下所示:

SELECT 
Customers.[Customer ID], 
Customers.[First Name], 
Customers.[Last Name], 
SUM(Iif(r.[Valid Referral] = True, 1, 0)) AS c, 
Sum(Iif(r.[Used Our Service] = True, 1, 0)) AS c2
FROM Customers 
INNER JOIN Referrals r ON Customers.[Customer ID] = r.[Referred From] 
WHERE (r.[Valid Referral])=True
GROUP BY Customers.[Customer ID], Customers.[First Name], Customers.[Last Name]