2017-04-07 6 views
1

私のSQL Serverコードに問題があります。私はselect文の最初の4つの列で結果を表示しようとしています。私は構文エラーを受け取り続けて、理由は不明です。SQLでのsumとの構文エラー

私がしたいことは、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

あなたは私たちとのエラーメッセージを共有するつもりですか?あなたはどこかにクローズがありません)。 – OldProgrammer

+0

SQL文にエラーがあります。 'g'付近の構文が正しくありません – SQLISHARD

+0

閉じ括弧がないようです。 –

答えて

2

あなたが要素、および外側が選択WHERE句の間https://docs.microsoft.com/en-us/sql/t-sql/queries/select-group-by-transact-sql、SELECTリスト中のコンマ、およびキーワードBY GROUPが必要には少し冗長なようです。

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' 
    AND g.PERIOD < '201703' 
    AND g.ACCTNUM = '569300000' 
GROUP BY 
    g.ENTITYID, 
    g.ACCTNUM, 
    h.ACCTNAME 
+0

"SQL文にエラーがあります。" gの近くに構文が正しくありません " – SQLISHARD

+0

選択リスト - 更新された回答 –

+0

ありがとうございました。 – SQLISHARD

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'