Почему я получил ошибку с этим запросом? - PullRequest
0 голосов
/ 11 декабря 2011

У меня есть следующий запрос, который должен показать результат за последние 3 месяца:

SELECT COUNT(DISTINCT dbo.UserQuiz.QuizID) AS [Total Number of Quizzes],
   dbo.Divisions.DivisionName, 
   DATENAME(Month, dbo.UserQuiz.DateTimeComplete) AS Month 
FROM dbo.UserQuiz 
INNER JOIN dbo.Quiz 
  ON dbo.UserQuiz.QuizID = dbo.Quiz.QuizID 
INNER JOIN dbo.employee 
  ON dbo.UserQuiz.Username = dbo.employee.Username 
RIGHT OUTER JOIN dbo.Divisions 
  ON dbo.employee.DivisionCode = dbo.Divisions.SapCode 

GROUP BY dbo.Divisions.DivisionName, 
  DATENAME(Month, dbo.UserQuiz.DateTimeComplete) 
HAVING (DATENAME(Month, GETDATE()) - 
        DATENAME(Month, dbo.UserQuiz.DateTimeComplete) > 3

Проблема, связанная с этим запросом, заключается в том, что когда я пытался выполнить его в SQLServer Management Studio 2008 R2, я получил следующую ошибку, и я не знаю почему:

Сообщение 102, уровень 15, состояние 1, строка 5 Неверный синтаксис рядом с «3».

Ответы [ 2 ]

2 голосов
/ 11 декабря 2011

Вам нужно заключить в скобки после 3.

SELECT     
    COUNT(DISTINCT dbo.UserQuiz.QuizID) AS [Total Number of Quizzes],   
    dbo.Divisions.DivisionName, 
    DATENAME(Month, dbo.UserQuiz.DateTimeComplete)  AS Month 

FROM dbo.UserQuiz 

INNER JOIN dbo.Quiz 
ON dbo.UserQuiz.QuizID = dbo.Quiz.QuizID 

INNER JOIN dbo.employee 
ON dbo.UserQuiz.Username = dbo.employee.Username 

RIGHT OUTER JOIN dbo.Divisions 
ON dbo.employee.DivisionCode = dbo.Divisions.SapCode 

GROUP BY dbo.Divisions.DivisionName, 
DATENAME(Month, dbo.UserQuiz.DateTimeComplete) 

HAVING (
    DATENAME(Month, GETDATE()) 
    - DATENAME(Month, dbo.UserQuiz.DateTimeComplete) > 3
) -- you were missing this parenthesis
0 голосов
/ 11 декабря 2011

Я полагаю, что вы пропускаете ")", когда вы где-то есть.

HAVING (DATENAME(Month, GETDATE()) - DATENAME(Month, dbo.UserQuiz.DateTimeComplete) > 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...