2016-10-23 92 views
-1

我有一个查询与SQl中运行总计相关。我尝试计算运行总数并将数据放入临时表中。然后,源数据,但它显示了多个月没有聚合一个在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`` 

请帮助如何让您不必在PGLD GROUP BY数据

+0

您可以添加示例数据和预期结果 –

+0

您正在使用哪个版本的SQL Server? –

+0

@TT。肯定是'2012 +' –

回答

0

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

感谢主席的回复..如果我在Group by子句中删除PGLD,它将显示错误。 – Deepanshu

+0

消息8120,级别16,状态1,行8 列'tempdb.dbo.AT.PGLD'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。 – Deepanshu

+0

例如数据集的: – Deepanshu