按位置查询大条目的总数、平均值和数量

Query the total, average and number of large entries by location

在 Access 中,我有两个表,我被要求将这些表中的一些统计信息输出到查询结果中。麻烦的是,我不知道该怎么做,甚至不知道该怎么做。

我要找的输出如下-

我需要查询的表是这样构造的-

Table 1 - 活动目录 -

Table 2 - IBM 笔记 -

我知道如何连接表并输出 LocationCount 字段,但我真的迷路了。感谢任何提示和技巧。

这是我目前所拥有的 -

SELECT DISTINCT [Active Directory].[AD Location] AS [Location], Count([Active Directory].[AD Location]) AS [Count]
FROM [Active Directory] INNER JOIN [IBM Notes] ON [AD Active Directory].[AD Email Address] = [IBM Notes].[Notes Email Address];

这里是 Active Directory 和 IBM Notes 表中的一些示例数据,以及预期结果(每个都在其自己的选项卡上)-

https://www.dropbox.com/s/nvtdxwlr9i82h5c/example.xlsx?dl=0

类似这样的内容 -- 我想您明白了。我在您的问题中看到邮箱大小不是数字,因此您必须将其转换为数字千兆字节。您必须进行此更改才能使其正常工作。

SELECT 
  A.[AD Location] AS [Location], 
  Count(A.[AD Location]) AS [Count],
  SUM(Val(N.[Notes Mailbox Size])) AS [Total Mailbox Size],
  AVG(Val(N.[Notes Mailbox Size])) AS [Average Mailbox Size],
  SUM(IIF(Val(N.[Notes Mailbox Size]) > 1.5,1,0)) AS [Large Mailboxes]
FROM [Active Directory] AS A
INNER JOIN [IBM Notes] AS N ON A.[AD Email Address] = N.[Notes Email Address]
GROUP BY  A.[AD Location]

上面的语句包括检查以确保 Notes Mailbox Size 字段中的值不是 Null -

SELECT
  A.[AD Location] AS Location,
  Count(A.[AD Location]) AS [Count of Location],
  Sum(IIf(IsNull(N.[Notes Mailbox Size]), "0", Val(N.[Notes Mailbox Size]))) AS [Total Mailbox Size (GB)],
  Round(Avg(IIf(IsNull(N.[Notes Mailbox Size]), "0", Val(N.[Notes Mailbox Size]))), 2) AS [Average Mailbox Size (GB)],
  Sum(IIf(IsNull(N.[Notes Mailbox Size]), "0", IIf(Val(N.[Notes Mailbox Size]) > 2.5, 1, 0))) AS [Count of Large Mailboxs]
FROM [Active Directory] AS A
INNER JOIN [IBM Notes] AS N ON A.[AD Email Address] = N.[Notes Email Address]
GROUP BY A.[AD Location];