2012-05-12 32 views
0

我使用的另一個表,並生成一個MySQL視圖,通過使用視圖我編碼以下:與下一個相同的id的值更換零 - MySQL的

SELECT staffid, 
    CASE Frequency 
    WHEN 'Less' THEN COUNT(Frequency) 
    ELSE '0' 
    END AS LessCount, 
    CASE Frequency 
    WHEN 'Full' THEN COUNT(Frequency) 
    ELSE '0' 
    END AS FullCount, 
    CASE Frequency 
    WHEN 'More' THEN COUNT(Frequency) 
    ELSE '0' 
    END AS MoreCount 
FROM effort_frequency 
GROUP BY staffid, Frequency 

我使用上述代碼,以獲得下面表中:

+-------+-----------+-----------+-----------+ 
| staff | lessCount | FullCount | MoreCount | 
+-------+-----------+-----------+-----------+ 
| 10 | 2  | 0  | 0  | 
| 10 | 0  | 1  | 0  | 
| 10 | 0  | 0  | 3  | 
| 11 | 1  | 0  | 0  | 
| 11 | 0  | 3  | 0  | 
+-------+-----------+-----------+-----------+ 

我需要這個轉換,應該是這樣的:

+-------+-----------+-----------+-----------+ 
| staff | lessCount | FullCount | MoreCount | 
+-------+-----------+-----------+-----------+ 
| 10 | 2  | 1  | 3  | 
| 11 | 1  | 3  | 0  | 
+-------+-----------+-----------+-----------+ 

如何,我們可以在MySQL做到這一點?

回答

2
SELECT staffid    AS staff, 
     SUM(Frequency='Less') AS lessCount, 
     SUM(Frequency='Full') AS FullCount, 
     SUM(Frequency='More') AS MoreCount 
FROM  effort_frequency 
GROUP BY staffid 
+0

非常感謝@eggyal,這個作品非常完美。 –

相關問題