2016-12-13 7 views
-2

Я работаю над базой данных обмена стеками для проекта. (https://data.stackexchange.com/stackoverflow/query/new)
Я хотел бы знать ТОП 10 пользователей, которые ежемесячно размещают между ними, регистрируются в базе данных. Я попробовал это, но я теряюсь:Как проверить условие для каждого месяца между двумя датами

SELECT TOP 10 
    Propriétaire 
FROM 
    (SELECT 
     count(Mois) AS nbMoisPosté, 
     datediff(month, création, getdate()) AS nbMoisTotal, 
     Propriétaire 
    FROM 
     (SELECT 
      count(Posts.Id) AS nbPosts, 
      month(Posts.creationDate) AS Mois, 
      year(Posts.creationDate) AS Année 
      Posts.ownerUserId AS Propriétaire, 
      Users.creationDate AS création 
     FROM 
      Posts, Users 
     WHERE 
      Users.Id = Posts.ownerUserId 
     GROUP BY 
      Posts.ownerUserId, 
      Mois, 
      Année, 
      création) compte 
    GROUP BY 
     datediff(month, création, getdate()), 
     Propriétaire) nbMois 
WHERE nbMoisPosté = nbMoisTotal 

Это не работает (ошибка синтаксиса), но я не понимаю свою ошибку. Спасибо.

+0

Share ошибка пожалуйста – scsimon

+0

ошибка: «Неправильный синтаксис около„Сообщения“» – Mattasse

+0

Разгуляй ваш код, и вы увидите, вам не хватает запятой рядом с слово. Забавно, как работают сообщения об ошибках .... – dfundako

ответ

2

Попробуйте устранить эти проблемы.

Пожалуйста, убедитесь, что вы размещаете свои сообщения об ошибках

SELECT TOP 10 
    Propriétaire 
FROM 

    (
    SELECT 
     count(Mois) AS nbMoisPosté, 
     datediff(month, création, getdate()) AS nbMoisTotal, 
     Propriétaire 
    FROM 
     (
     SELECT 
      count(Posts.Id) AS nbPosts, 
      month(Posts.creationDate) AS Mois, 
      year(Posts.creationDate) AS Année --MISSING COMMA 
      Posts.ownerUserId AS Propriétaire, 
      Users.creationDate AS création 
     FROM 
      Posts, 
      Users 
     WHERE 
      Users.Id = Posts.ownerUserId 
     GROUP BY 
      Posts.ownerUserId, 
      Mois, --GROUP BY THE FUNCTION month(Posts.creationDate) 
      Année, --GROUP BY THE FUNCTION year(Posts.creationDate) 
      création 

      ) compte 
    GROUP BY 
     datediff(month, création, getdate()), 
     Propriétaire 
     ) nbMois 
WHERE 
    nbMoisPosté = nbMoisTotal 
+0

Спасибо, у меня есть еще одна ошибка. Я буду работать над этим – Mattasse

+0

Вы можете использовать имена столбцов, подобные этому в предложении ORDER BY, а не в предложении GROUP BY – pacreely

+0

. Спасибо, у меня много проблем с предложением ORDER BY. Сейчас работа – Mattasse

Смежные вопросы