【问题标题】:Access SQL Query Returning Wrong Value for Count Field访问 SQL 查询返回错误的计数字段值
【发布时间】:2014-04-10 02:33:58
【问题描述】:

我正在尝试进行SQL 查询,获取客户姓名加上c 列,这是CountCustomers.[Customer ID] = Referrals.[Referred From]Referrals.[Used Our Service] = True 连接到推荐的行数

第二列是c2,它是CountCustomers.[Customer ID] = Referrals.[Referred From]Referrals.[Valid Referral] = 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]

客户表:

推荐表:

结果表:

【问题讨论】:

    标签: sql ms-access count ms-access-2010


    【解决方案1】:

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

    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]
    

    【讨论】:

      猜你喜欢
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多