Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获取其他列的行计数_Sql_Sql Server 2008_Tsql - Fatal编程技术网

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(*)的正常方式。使用表定义和您希望从查询中获取的内容的语句将更容易帮助您。是共享数据库问题的超级方法。