2016-07-21 7 views
0

このクエリを書いて、合計の合計を見つけました。しかし、私はエラーが発生しています。あなたは私を助けてくれますか?合計の合計を求める

SELECT SUM(net) AS net 
FROM (select SUM(FB.[Net]) as net FROM (([table1 AS FB INNER JOIN 
Date ON FB.DateKey = Date.DateKey) 
inner join [Store] on [Store].StoreKey = FB.StoreKey) WHERE (FullDate BETWEEN DATEADD(WEEK, -12, CONVERT(date, GETDATE())) 
AND DATEADD(day, -1, CONVERT(date, GETDATE())) 
AND SName = 'XYZ' 
AND DayNameOfWeek = 'Monday') 
GROUP BY FB.[Net]) 

種類よろしく

+2

構文エラーがたくさん... – Sachu

+1

あなたは、このライン上の任意の状態を確認 'とDATEADD(日、-1、CONVERT(日付、GETDATE()))しませんでした'。 – Sankar

+0

こんにちはSachu、構文エラーを指摘できますか?最初のselect sum文を使わずにSQL Serverでコードを実行したところ、これは機能します。 – Shivang

答えて

0

あなたのコードの書式を設定するには、キーです:

SELECT SUM(net) AS net 
FROM (
      SELECT SUM(FB.[Net]) as net 
      FROM ((
         [table1 AS FB 
         INNER JOIN Date 
           ON FB.DateKey = Date.DateKey 
        ) 
        inner join [Store] 
          on [Store].StoreKey = FB.StoreKey 
        ) 
        WHERE (FullDate BETWEEN DATEADD(WEEK, -12, CONVERT(date, GETDATE())) 
         AND DATEADD(day, -1, CONVERT(date, GETDATE())) 
         AND SName = 'XYZ' 
         AND DayNameOfWeek = 'Monday') 
        GROUP BY FB.[Net] 
        ) 

は、私は今、多くのエラーを見ることができます。私は、これはほとんどの構文エラーを解決だと思うが、私はそれはあなたが望む結果得られわからない:構文エラー(私の知る限り)のない独自のコードである

SELECT SUM(net) AS net 
FROM (
      SELECT SUM([Net]) as net 
      FROM (
         SELECT  FB.net 
         FROM  table1 AS FB 
         INNER JOIN [Date] 
           ON FB.DateKey = [Date].DateKey      
         inner join [Store] 
           on [Store].StoreKey = FB.StoreKey     
         WHERE FullDate BETWEEN DATEADD(WEEK, -12, GETDATE()) AND DATEADD(day, -1, GETDATE()) 
          AND SName = 'XYZ' 
          AND DayNameOfWeek = 'Monday' 
         GROUP BY FB.[Net] 
        ) A 
     ) B 

が編集を。次のコードは同じ結果セットを返さなければなりません:

SELECT  SUM(DISTINCT FB.net) 
FROM  table1 AS FB 
INNER JOIN [Date] 
     ON FB.DateKey = [Date].DateKey      
INNER JOIN [Store] 
     ON [Store].StoreKey = FB.StoreKey     
WHERE  FullDate BETWEEN DATEADD(WEEK, -12, GETDATE()) AND DATEADD(day, -1, GETDATE()) 
     AND SName = 'XYZ' 
     AND DayNameOfWeek = 'Monday' 

本当にこれが欲しいですか?

+0

最後に更新されたコードで試しましたか(かっこは削除しましたか?)それは ')'と言っていますか? – HoneyBadger

+0

@ Shivang、また、新しい編集 – HoneyBadger

+0

@ Shivang、またヒントを、エラーを与えるクエリについての質問をする場合、ヒントを質問に含まれています – HoneyBadger

0

このようにして、不要な角括弧を削除し、適切な別名を追加しました。 "Where"句フィルタにエイリアスを追加してください。

SELECT SUM(net) AS net 
FROM (
    SELECT SUM(FB.[Net]) AS net 
    FROM [table1] FB 
    INNER JOIN [Date] D ON FB.DateKey = D.DateKey 
    INNER JOIN [Store] S ON S.StoreKey = FB.StoreKey 
    WHERE FullDate BETWEEN DATEADD(WEEK, - 12, CONVERT(DATE, GETDATE())) 
      AND DATEADD(day, - 1, CONVERT(DATE, GETDATE())) 
     AND SName = 'XYZ' 
     AND DayNameOfWeek = 'Monday' 
    GROUP BY FB.[Net] 
    ) t 
関連する問題