在sql代码中使用sum的语法错误

时间:2017-04-07 17:37:27

标签: sql sql-server

我的SQL Server代码出现问题。我试图通过select语句的前4列列出结果。我不断收到语法错误,不确定为什么。

我想要它做的是拉动我定义的entityid,acctnum,句号,但是,我不想看到结果中的句号,因为我希望它们被总结在一起。 IE我希望看到活动列的总活动而不是每个时段的行。

SELECT 
    ENTITYID, ACCTNUM, ACCTNAME, ACTIVITY
FROM
    (SELECT  
         g.ENTITYID AS 'ENTITYID'
         g.ACCTNUM AS 'ACCTNUM'
         SUM(g.ACTIVITY) AS 'ACTIVITY'
         h.ACCTNAME AS 'ACCTNAME'
     FROM 
         SQLDATA.DBO.GLSUM  g
     INNER JOIN 
         SQLDATA.DBO.GACC h ON g.ACCTNUM = h.ACCTNUM
     WHERE   
         g.ENTITYID = '85000'
         g.PERIOD < '201703'
         g.ACCTNUM = '569300000')

2 个答案:

答案 0 :(得分:2)

你需要一个GROUP BY子句https://docs.microsoft.com/en-us/sql/t-sql/queries/select-group-by-transact-sql,SELECT列表中的逗号,WHERE元素之间的AND关键字,外部选择似乎有点多余。

819DD50A925A5EB8CABE974A654A18A8

答案 1 :(得分:0)

DECLARE @a int 
SET @a = select sum(g.ACTIVITY) 
         from SQLDATA.DBO.GLSUM  
         WHERE ENTITYID = '85000' and
               PERIOD < '201703' and
               ACCTNUM = '569300000' 



SELECT  

           g.ENTITYID AS 'ENTITYID'
           g.ACCTNUM AS 'ACCTNUM'
           @a AS 'ACTIVITY'
           h.ACCTNAME AS 'ACCTNAME'

FROM SQLDATA.DBO.GLSUM  g
INNER JOIN SQLDATA.DBO.GACC h
ON g.ACCTNUM = h.ACCTNUM

WHERE   

           g.ENTITYID = '85000'
           g.PERIOD < '201703'
           g.ACCTNUM = '569300000'