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语句。