Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 server 计算select查询返回的行数_Sql Server_Sql Server 2008_Tsql - Fatal编程技术网

Sql server 计算select查询返回的行数

Sql server 计算select查询返回的行数,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,我需要计算以下查询返回的行数 select m.Company_id from Monitor as m inner join Monitor_Request as mr on mr.Company_ID=m.Company_id group by m.Company_id having COUNT(m.Monitor_id)>=5 我试过以下方法 select COUNT(*) from ( select m.Company_id from Monitor as

我需要计算以下查询返回的行数

select m.Company_id
from Monitor as m
    inner join Monitor_Request as mr on mr.Company_ID=m.Company_id
    group by m.Company_id
    having COUNT(m.Monitor_id)>=5
我试过以下方法

select COUNT(*) from
(
select m.Company_id
from Monitor as m
    inner join Monitor_Request as mr on mr.Company_ID=m.Company_id
    group by m.Company_id
    having COUNT(m.Monitor_id)>=5)  
它在查询分析器中给出了一条错误消息,其中显示以下内容:

Msg 102,第15级,状态1,第7行“')附近的语法不正确


SQL Server要求从
加入
中选择的子查询具有别名

将别名添加到子查询(在本例中为
x
):


尝试将整个select包装在括号中,然后对其运行计数(*)


语法错误只是由于缺少子查询的别名:

select COUNT(*) from
(
select m.Company_id
from Monitor as m
    inner join Monitor_Request as mr on mr.Company_ID=m.Company_id
    group by m.Company_id
    having COUNT(m.Monitor_id)>=5)  mySubQuery  /* Alias */

这将为他提供一组分组的
计数的行,而不是返回的总行数。实际上,我没有得到结果的计数。这只是一个madeup名称,你可以随意调用它。我想一个更好的名字应该是[MonitorRequestsWith5OrMoreMonitors],确切地说,如果你喜欢简洁的话:-)有没有考虑过行数?
这对我很有帮助..thnx
select COUNT(*) from
(
select m.Company_id
from Monitor as m
    inner join Monitor_Request as mr on mr.Company_ID=m.Company_id
    group by m.Company_id
    having COUNT(m.Monitor_id)>=5)  x
select count(*)
from
(
   select m.id
   from Monitor as m 
    inner join Monitor_Request as mr 
       on mr.Company_ID=m.Company_id   group by m.Company_id
    having COUNT(m.Monitor_id)>=5
) myNewTable
select COUNT(*) from
(
select m.Company_id
from Monitor as m
    inner join Monitor_Request as mr on mr.Company_ID=m.Company_id
    group by m.Company_id
    having COUNT(m.Monitor_id)>=5)  mySubQuery  /* Alias */