2011-12-23 38 views
0

我有這個表:獲取服務的數量每名獲得

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 
+0

在這情況下日期列由來自於你的組? – 2011-12-23 10:33:34

+0

哦,那沒什麼。我忘了擦掉那個。 – 2011-12-23 10:35:59

+0

你有錯誤嗎?如果不;結果集有什麼問題?我沒有經驗的SQL服務器,但在MySQL內部查詢,因爲它現在應該給你正確的結果... – 2011-12-23 10:38:31

回答

1

您需要group你的結果是這樣的:

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 
+0

這不就是OP內部查詢的精確副本嗎?! – 2011-12-23 11:00:37

+0

@SirCrispalot確實..但查詢不能給出他說的結果.. – 2011-12-23 11:02:24

+1

我同意 - 我已評論他的問題,也許他沒有給我們完整的故事! – 2011-12-23 11:03:09