2017-09-13 11 views
1

私は数十万もの同様のレコードのテーブルを持っており、複数の同様のレコードをより簡潔なテーブルに統合しようとしています。私が以下に使用したSQLクエリは、元のテーブルと比較して正確な結果を得られませんが、なぜそれがわかりません。SQL統合SUMにアクセス

テーブルは元のテーブルのすべてのフィールドを取得しますが、各レコードをカウントの合計で1つのユニークレコードに統合することを目的としているため、カウントの合計は元のテーブルの合計と正確に一致する必要があります。

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