1文章有很多帖子SQL Group By Error

时间:2015-12-28 15:01:46

标签: sql sql-server

以下是此查询语句中包含的3个表

  • 帖子:Id,Title,Post,RatingId,Img
  • 评分:ID,用户ID,帖子ID

1个帖子有多个评分,我们想要计算评级以及有关文章本身的所有信息。

这就是我所拥有的:

SELECT p.*, Count(r.PostId)
FROM Posts p INNER JOIN
     Rating r
     on p.RatingId = r.PostId

然后我收到此错误:

  

Msg 8120,Level 16,State 1,Line 1列'Posts.Id'无效   选择列表,因为它不包含在聚合中   函数或GROUP BY子句。

但我不想使用分组,我想返回文章信息以及该文章评分的一列。

谢谢!

1 个答案:

答案 0 :(得分:1)

执行所需操作的最简单方法可能是使用子查询:

class CustomDockingManager : DockingManager
{
     override IEnumerable<IDropArea> GetDropAreas(LayoutFloatingWindowControl draggingWindow)
     {
          //some changes
     }
}

您的查询存在问题,因为它使用聚合函数SELECT p.*, (SELECT Count(r.PostId) FROM rating r WHERE p.RatingId = r.PostId ) FROM Posts p ; 和其他列(COUNT()),并且没有p.*子句。

此外,您的GROUP BY条件看起来很奇怪。我希望JOINp.PostId = r.PostId