我有一个关于在 MS Access 中将多个电话号码与一个客户 ID 结合的问题

问题描述

我必须创建一个查询,以查找每个客户的年度移动数据使用总量。我最终得到了正确的答案,但我认为它根本没有效率。

SELECT 
    [Customer Build].CustomerID,[Mobile Data Usage].DataYear,SUM([Mobile Data Usage].MPDataByGB) 
       + COUNT([Phone Number Pool].PhoneNumber) 
       - COUNT([Phone Number Pool].PhoneNumber) AS SumOfMPDataByGB

如何将客户 ID 与电话号码结合起来,同时又不必对电话号码使用重复计数功能

解决方法

假设所有表都基于 CustomerID 连接,您可以对 MPDataByGB 和 GROUP BY 其他列进行 SUM。

SELECT A.[CustomerID],B.[PhoneNumber],C.[DataYear],SUM(C.MPDataByGB) AS SumOfMPDataByGB
FROM [Customer Build] AS A
JOIN [Phone Number Pool] AS B
    ON A.[CustomerID] = B.[CustomerID]
JOIN [Mobile Data Usage] AS C
    ON A.[CustomerID] = B.[CustomerID]
GROUP BY A.[CustomerID],C.[DataYear]