Sql 获取其他列的行计数
我需要得到一些列,它们是Sql 获取其他列的行计数,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我需要得到一些列,它们是LinkID,ReplyCount,最重要的是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 >=
LinkID
,ReplyCount
,最重要的是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(*)添加为
”时,它不再运行
我收到了此消息。我如何获得行数?有人知道有关此主题的任何信息吗
味精208,第16级,状态1,第1行无效的对象名称“TBL_UserIcerikler”
Count(*)
是一个聚合函数,它返回已汇总的行数(而不是查询返回的行数),因此您必须GROUP by
something并仅指定分组所依据的字段(或仅返回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;
我知道这不是你想要的,但是你没有给出足够的解释,说明你想从数据库中得到什么
也就是说,我想你可能忘记了表达式列表中的逗号
为什么不发布您修改后的查询。请阅读MSDN对分组依据的解释,您将理解为什么需要它来获取您的总数。对不起,我不明白您所说的。:)您能解释一下吗。我是在运行示例代码Msg 208,级别16,状态1,第1行无效对象名称“TBL\U UserRikler”时得到这个mesagge的。对不起,我离开了我的计算机。这不仅仅是因为你拼错了表名?你能编辑你的问题并添加表定义(在SQL Management Studio中将表脚本为CREATE…)吗?因为这是使用COUNT(*)的正常方式。使用表定义和您希望从查询中获取的内容的语句将更容易帮助您。是共享数据库问题的超级方法。