2017-09-13 65 views
1

我有一個數十萬個類似記錄的表,我試圖將多個相似的記錄合併成一個更簡潔的表。下面我使用的SQL查詢並不能給我準確的結果,但與原始表相比,但我不確定原因。訪問SQL - 合併SUM

該表旨在從原始表中拉出所有字段,但將每條記錄合併到一個具有計數總和的唯一唯一記錄中,所以計數總數應該與原始表中的總和完全對應。

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

+0

請提供表格結構,樣本數據,預期結果和實際結果。您可以使用https://ozh.github.io/ascii-tables/在StackOverflow中發佈表格數據。 –

+0

您正在聚合「Count」字段,因此您可能不希望該字段位於GROUP BY中。 –

回答

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應該只包含沒有聚集功能的一部分列。

+0

當你這麼說的時候,這似乎很明顯!我會很快查看,看看是否有效。非常感謝。 – adampayne84