Выберите несколько отдельных полей и суммируйте другое поле - PullRequest
1 голос
/ 17 августа 2010

У меня есть таблица, где у меня есть 6 столбцов.В 5 из этих столбцов я должен убедиться, что у меня нет дубликатов.Поэтому я использовал выражение:

SELECT SUB_ACCT_NO_PAJ, CustomerType, POST_DTE_PAJ, IA_DateYear, ADJ_RSN_PAJ, count(*) AS [aCount]
INTO TempTable1
FROM All_Adjustments
GROUP BY SUB_ACCT_NO_PAJ, CustomerType, POST_DTE_PAJ, IA_DateYear, ADJ_RSN_PAJ, 

Моя проблема в том, что шестой столбец, POST_AMT_PAJ, должен быть суммирован для каждой из этих строк.Так что, если какие-либо строки были точными дубликатами в других полях, то мне нужно взять каждый из них POST_AMT_PAJ и суммировать их для новой таблицы.

Любая помощь приветствуется!Спасибо!

Редактирование, чтобы продемонстрировать лучше

Все корректировки:

SUB_ACCT   |    Customer Type   |   POST_DTE   |  Dateyear   |  POST_AMT
------------------------------------------------------------------------
  1        |         R          |    July 3    |    2010     |     5
  1        |         R          |    July 3    |    2010     |     8
  2        |         L          |    June 2    |    2008     |    14  
  2        |         R          |    June 2    |    2009     |    12

Будет идти к ...

SUB_ACCT   |    Customer Type   |   POST_DTE   |  Dateyear   |  POST_AMT
------------------------------------------------------------------------
  1        |         R          |    July 3    |    2010     |    13
  2        |         L          |    June 2    |    2008     |    14  
  2        |         R          |    June 2    |    2009     |    12

Ответы [ 2 ]

1 голос
/ 17 августа 2010

Чтобы получить сумму столбца, используйте SUM :

SELECT
    SUB_ACCT_NO_PAJ,
    CustomerType,
    POST_DTE_PAJ,
    IA_DateYear,
    ADJ_RSN_PAJ,
    SUM(POST_AMT_PAJ) AS POST_AMT_PAJ_total
    COUNT(*) AS [aCount]
INTO TempTable1
FROM All_Adjustments
GROUP BY
    SUB_ACCT_NO_PAJ,
    CustomerType,
    POST_DTE_PAJ,
    IA_DateYear,
    ADJ_RSN_PAJ
0 голосов
/ 17 августа 2010

Попробуйте это:

SELECT 
 SUB_ACCT_NO_PAJ, 
 CustomerType, POST_DTE_PAJ, 
 IA_DateYear, 
 Sum(ADJ_RSN_PAJ) as 'Total_Adj_Rsn_Paj', 
 count(*) AS [aCount] 
INTO TempTable1 
FROM All_Adjustments 
GROUP BY SUB_ACCT_NO_PAJ, CustomerType, POST_DTE_PAJ, IA_DateYear

Поскольку ADJ_RSN_PAJ будет тогда в агрегатной функции, это не должно приводить к взрыву вашего предложения Group By.

ПРИМЕЧАНИЕ. Это полностью из памяти, поэтому вам может потребоваться выполнить некоторые настройки (на самом деле у меня нет SQL Server, с которым я могу играть, даже для проверки синтаксиса ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...