0

我需要获取一些列,其中LinkIDReplyCount重要的是TotalRowCount.

这是我的代码:

SELECT 
   TOP(10) link.LinkID, mesaj.ReplyCount
FROM 
   TBL_UserIcerikler AS link 
INNER JOIN 
   TBL_UserMesajlar AS mesaj  ON link.FromUserID = mesaj.UserID
WHERE 
   link.PublishDate >='2013-03-12 19:46:45.000' 
ORDER BY
   link.PublishDate DESC

当我添加Count(*) AS a“.

我收到了这条消息。如何获得行数?有没有人有关于这个话题的任何信息?

消息 208,级别 16,状态 1,第 1 行
无效的对象名称“TBL_UserIcerikler”

4

2 回答 2

1

Count(*)是一个聚合函数,它返回已汇总的行数(不是查询返回的行数),因此您必须GROUP BY指定一些内容并仅指定您分组的字段(或仅返回 COUNT(*))。

将 COUNT() 和 TOP() 混合使用没有多大意义。

例如 :

SELECT link.LinkID, mesaj.ReplyCount, COUNT(*)
  FROM TBL_UserIcerikler AS link 
  INNER JOIN TBL_UserMesajlar AS mesaj ON link.FromUserID = mesaj.UserID
  WHERE link.PublishDate >='2013-03-12 19:46:45.000'
  GROUP BY link.LinkID, mesaj.ReplyCount;

我知道这不是你想要的,但你没有给出足够的解释来说明你想从你的数据库中得到什么。

也就是说,我认为您可能忘记了表达式列表中的逗号。

为什么不发布您修改后的查询。

于 2013-03-17T19:24:16.140 回答
0

请阅读MSDN 对 group by 的解释,您将了解为什么需要它来获取总数。

于 2013-03-17T23:04:36.037 回答