Sql server 2008 获取每个用户名获得的服务数

Sql server 2008 获取每个用户名获得的服务数,sql-server-2008,Sql Server 2008,我有这张桌子: serviceID Name L_name -------------------------------- 1 A B 2 A B 3 C D 4 E F 我想知道每个人得到的服务数量: Name L_Name

我有这张桌子:

    serviceID    Name     L_name    
  --------------------------------
        1         A         B      
        2         A         B
        3         C         D
        4         E         F 
我想知道每个人得到的服务数量:

         Name    L_Name    Countf
   ---------------------------------
          A         B        2
          C         D        1
          E         F        1  
这是我编写的查询,没有正确的结果集:

select * 
from  
(Select  Name,L_Name,COUNT(Service_ID) as 'countf' 
from Service_Tbl  
group by Name,L_Name) as tbl
我明白了:

         Name    L_Name    Countf
   ---------------------------------
          A         B        1
          A         B        1
          C         D        1
          E         F        1  

您需要对您的结果进行如下分组:

select Name, L_Name, COUNT(Service_ID) as 'countf'
from Service_Tbl  
group by Name,L_Name
这是一个完整的示例,给出了所需的结果:

create table #Service_Tbl  (
serviceID    int,
Name     varchar(1),
L_name    varchar(1)
)

insert into #Service_Tbl values (1, 'A','B')
insert into #Service_Tbl values (2, 'A','B')
insert into #Service_Tbl values (3, 'C','D')
insert into #Service_Tbl values (4, 'E','F')

select Name, L_Name, COUNT(ServiceID) as 'countf'
from #Service_Tbl  
group by Name,L_Name

drop table #Service_Tbl 

那个日期栏是从哪里来的?哦,没什么。我忘了把它擦掉。你有错误吗?若否,;结果集有什么问题?我对sql server没有经验,但在MySQL中,现在的内部查询应该会给你正确的结果…不,我没有得到错误,编辑了这个问题。如果你只是运行内部查询?这不是OP内部查询的精确副本吗?!我同意——我已经评论了他的问题,也许他没有给我们完整的故事!我不能在“countf”字段中使用where语句。