2016-10-23 3 views
-1

У меня есть запрос, связанный с Running Total in SQl. Я пытаюсь вычислить общее количество и поместить данные в таблицу temp. Тогда источник данных, но он показывает несколько месяцев не совокупный одинЗапуск Total in SQL

use tempdb 

SELECT 
    CONVERT(VARCHAR(7),PGLD,126) AS PMONTH, 
    CLN, 
    DIN, 
    MAN, 
    SUM(ALID) OVER (ORDER BY PGLD ROWS UNBOUNDED PRECEDING) AS CUMULATIVE_ALID, 
    ALID 
    into #1 
FROM tempdb.dbo."AT" 
GROUP BY 
    CONVERT(VARCHAR(7),PGLD,126), 
    PGLD, 
    CLN, 
    DIN, 
    MAN, 
    ALID; 

SELECT PMONTH, CUMULATIVE_ALID FROM #1`` 

Пожалуйста, помогите, как получить данные

+0

Можете ли вы добавить пример данных и ожидаемый результат –

+0

В какой версии SQL Server вы работаете? –

+0

@TT. Определенно '2012 +' –

ответ

0

Вам не нужно GROUP BY на PGLD.

use tempdb 

SELECT 
    CONVERT(VARCHAR(7),PGLD,126) AS PMONTH, 
    CLN, 
    DIN, 
    MAN, 
    SUM(ALID) OVER (ORDER BY PGLD ROWS UNBOUNDED PRECEDING) AS CUMULATIVE_ALID, 
    ALID 
    into #1 
FROM tempdb.dbo."AT" 
GROUP BY 
    CONVERT(VARCHAR(7),PGLD,126), 
    PGLD, 
    CLN, 
    DIN, 
    MAN, 
    ALID; 

SELECT PMONTH, CUMULATIVE_ALID FROM #1 
+0

Спасибо, сэр за ответ. Если я удаляю PGLD в Group by Clause, он показывает ошибку. – Deepanshu

+0

Msg 8120, уровень 16, состояние 1, строка 8 Столбец «tempdb.dbo.AT.PGLD» недопустим в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY. – Deepanshu

+0

Например, из набора данных: – Deepanshu