Счетчик доступа на другом столе не работает - PullRequest
0 голосов
/ 25 июля 2010

У меня есть таблица сообщений и таблица PostComments системы блогов.Я хочу посчитать и отсортировать посты по количеству комментариев , но мой запрос не будет работать.ошибка "Вы попытались выполнить запрос, который не включает указанное выражение 'PostID' как часть агрегатной функции."

Ответы [ 3 ]

1 голос
/ 25 июля 2010

Я полный нуб доступа, но попробуйте второй с группировкой по неагрегированным столбцам.

    SELECT 
       Posts.PostID
       ,Posts.DateCreated
       ,Posts.Title
       ,Posts.Description
       ,Posts.Hits
       ,Count([CommentID]) AS CommentCount 
    FROM Posts 
       INNER JOIN PostComments ON Posts.PostID = PostComments.PostID
    GROUP BY
       Posts.PostID
       ,Posts.DateCreated
       ,Posts.Title
       ,Posts.Description
       ,Posts.Hits
   ORDER BY
      Count([CommentID]);

Возможно, вам нужно поместить строку JOIN в фигурные скобки в MS-Access.

1 голос
/ 25 июля 2010

Попробуйте

SELECT Posts.PostID, Posts.DateCreated, Posts.Title, Posts.Description,
Posts.Hits, Count([CommentID]) AS CommentCount FROM Posts INNER JOIN PostComments
ON Posts.PostID = PostComments.PostID
GROUP BY Posts.PostID, Posts.DateCreated, Posts.Title, Posts.Description, Posts.Hits
ORDER BY Count([CommentID]) DESC
0 голосов
/ 25 июля 2010
SELECT 
    Posts.PostID, 
    Posts.DateCreated, 
    Posts.Title, 
    Posts.Description, 
    Posts.Hits, 
    dr.CommentCount 
FROM Posts p
INNER JOIN 
    (SELECT PostID, Count(CommentID) as CommentCount FROM PostComments WHERE  
        PostComments.IsApproved=True GROUP BY PostId) dr ON dr.PostID = p.PostID
ORDER BY dr.CommentCount DESC;
...