2012-08-16 27 views
0
a project has_many tasks 
a task can be assigned to many members 

例如:如何構建此SQL摘要?

Project Task Member 
------- ---- ------ 
    P1  T1  M1 
    P1  T2  M2 
    P2  T1  M1 
    P2  T2  M2 
    P2  T3  M1 
    P3  T1  M2 

我想獲得下面的摘要中,即一個項目的最後一個任務分解成員:

------ --- 
T1  3 
- M1 2 
- M2 1 
T2  2 
- M2 2 
T3  1 
- M1 1 

如何生成SQL?

回答

1

使用下面的SQL

select task, null as member, COUNT(*) as count from yourtable group by task 
    union 
    select task, member, COUNT(*) from yourtable group by task, member 
    order by task, member