2011-10-28 61 views
0

我使用PHP和MySQL開發日記管理腳本。我堅持爲此我提出一個假設的表結構和我的要求之下的情況。如何獲得與用戶類別明智的價值觀?

 
|---------------|--------------| 
| User Name | Status  | 
|---------------|--------------| 
| John   | Open  | 
|---------------|--------------| 
| John   | Assigned | 
|---------------|--------------| 
| John   | Closed  | 
|---------------|--------------| 
| Miller  | Assigned | 
|---------------|--------------| 
| Miller  | Assigned | 
|---------------|--------------| 
| Smith  | Closed  | 
|---------------|--------------| 

我期待着像下面這樣的最終網頁輸出。

 
|---------------|--------------|--------------|--------------| 
| User Name | Open  | Assigned | Closed  | 
|---------------|--------------|--------------|--------------| 
| John   |  1  |  1  |  1  | 
|---------------|--------------|--------------|--------------| 
| Miller  |  0  |  2  |  0  | 
|---------------|--------------|--------------|--------------| 
| Smith  |  0  |  0  |  1  | 
|---------------|--------------|--------------|--------------| 

請建議,如果使用MySQL查詢(使用GROUP BY)本身可以產生這種現成的或我得編程邏輯點點的幫助。如果是這樣,我應該編碼?我非常無奈。我可以在這裏提供整個劇本,但我沒有這樣做只是爲了避免混淆。

回答

2
select `User Name`, 
    sum(case when Status = 'Open' then 1 end) as Open, 
    sum(case when Status = 'Assigned' then 1 end) as Assigned, 
    sum(case when Status = 'Closed' then 1 end) as Closed 
from Status 
group by `User Name` 
+0

大!!!!!!!!!!!它完全符合我的需求。謝謝親愛的! – Samcoder