访问SQL - 合并SUM

时间:2017-09-13 16:04:49

标签: sql ms-access

我有一张包含数十万个类似记录的表,我正在尝试将多个类似的记录合并到一个更简洁的表中。我在下面使用的SQL查询与原始表相比没有给出准确的结果,但我不确定原因。

该表旨在从原始表中提取所有字段,但使用计数总和将每个记录合并到一个唯一记录中,因此计数总和应与原始表中的总和完全对应。

SELECT Date_mday, date_month, date_year, [Message#EventID], aaRequestType, 
[Message#SecurityParameters#AccountNumber] , 
[Message#SecurityParameters#LogonUserID] , 
InstitutionPOBoxCountry, 
[Message#SecurityParameters#RoleData] , 
Sum(Count) AS SumOfCount
FROM TempImport
GROUP BY Date_mday, date_month, date_year, [Message#EventID], aaRequestType, [Message#SecurityParameters#AccountNumber], [Message#SecurityParameters#LogonUserID], InstitutionPOBoxCountry, [Message#SecurityParameters#RoleData], Count;

我确信这很容易解决,但我尝试了一些不同的方法,我很难过。

我的原始表格如下:

 date_mday | date_month | date_year | Message#EventID | aaRequestType | Message#SecurityParameters#AccountNumber | Message#SecurityParameters#LogonUserID | InstitutionPOBoxCountry | Message#SecurityParameters#RoleData | count 
-----------|------------|-----------|-----------------|---------------|------------------------------------------|----------------------------------------|-------------------------|-------------------------------------|-------
 1         | Jan        | 2017      | XML-INPUT       | GetData       | A1234                                    | AAA1234                                | GB                      | VALIDATE                            | 1     
 1         | Jan        | 2017      | XML-INPUT       | GetData       | A1234                                    | AAA1234                                | GB                      | VALIDATE                            | 1     
 1         | Jan        | 2017      | XML-INPUT       | GetData       | A1234                                    | AAA1234                                | GB                      | VALIDATE                            | 1     
 1         | Jan        | 2017      | XML-INPUT       | GetData       | A1234                                    | AAA1234                                | GB                      | VALIDATE                            | 1     

统一表格只有一行,但最后一列(SumOfCount)为4。

1 个答案:

答案 0 :(得分:0)

count是您要汇总的字段。如果您将其包含在GROUP BY中,则每个count值都会有一个单独的行。

因为您要对值进行求和:

SELECT Date_mday, date_month, date_year, [Message#EventID], aaRequestType, 
       [Message#SecurityParameters#AccountNumber],[Message#SecurityParameters#LogonUserID] , 
       InstitutionPOBoxCountry, [Message#SecurityParameters#RoleData] , 
       Sum(Count) AS SumOfCount
FROM TempImport
GROUP BY Date_mday, date_month, date_year, [Message#EventID], aaRequestType, [Message#SecurityParameters#AccountNumber], 
         [Message#SecurityParameters#LogonUserID], InstitutionPOBoxCountry, [Message#SecurityParameters#RoleData];

您的GROUP BY应该只包含不属于聚合函数的列。