2016-07-21 3 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

는이 라인'AND 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