有时候,表中的某些记录在逻辑上相互关联,例如发票表中的记录。由于一个客户可以有许多发票,因此,可以将一个客户的所有发票视为一组,以便于查找有关该组的统计信息和汇总信息。
对记录进行分组的关键在于:对于组内的每个记录而言,记录中的一个或多个字段必须包含相同的值。对于发票表而言,特定客户具有的每个发票的“客户ID”字段值必须都是相同的。
要创建记录组,请使用 GROUP BY 子句以及要作为分组依据的字段名称。
Select CustomerID, Count(*) AS [Number of Invoices],
Avg(Amount) AS [Average Invoice Amount]
FROM tblInvoices
GROUP BY CustomerID
请注意,该语句将返回一个记录,其中显示在发票表中具有发票记录的每个客户的客户 ID、具有的发票数目以及发票平均金额。由于每个客户的发票都被视为一组,因此您可以对发票进行计数,然后确定发票平均金额。
您可以通过使用 HAVING 子句在分组级指定条件。该子句与 Where 子句类似。例如,下面的查询仅返回发票平均金额小于 100 的每个客户的那些记录:
Select CustomerID, Count(*) AS [Number of Invoices],
Avg(Amount) AS [Average Invoice Amount]
FROM tblInvoices
GROUP BY CustomerID
HAVING Avg(Amount) < 100
Access软件网交流QQ群(群号:198465573) |