2009-07-28 44 views
0

我之前已經張貼了關於這一點,這有助於給我下面的SQL:MySQL的工作日/週末計數 - 第二部分

SELECT fname, MONTH(eventDate) , IF(WEEKDAY(eventDate) <5, 'weekday', 'weekend') AS 
DAY , COUNT(*) 
FROM eventcal AS e 
LEFT JOIN users AS u ON e.primary = u.username 
GROUP BY fname, MONTH(eventDate) , IF(WEEKDAY(eventDate) <5, 'weekday', 'weekend') ; 

這一點讓我得到以下結果:

fname MONTH(eventDate) DAY  COUNT(*) 
Kevin 7     weekday  3 
Kevin 7     weekend  1 
Missy 7     weekday  3 
Missy 7     weekend  1 

我在嘗試實現以下格式時遇到了一些麻煩:

fname MONTH(eventDate) Weekday COUNT  WEEKEND COUNT 
Kevin 7     3     1 
Missy  7     3     1 

任何人都可以提供一些幫助嗎?我將不勝感激......

你可以看到我的模式爲「用戶」和「eventcal」在:在SELECT MySQL/PHP Algorithm for Weekday/Weekend count (per month)

回答

2
SELECT 
    fname, 
    MONTH(eventDate), 
    SUM(IF(WEEKDAY(eventDate) < 5,1,0)) AS WeekdayCount, 
    SUM(IF(WEEKDAY(eventDate) >= 5,1,0)) AS WeekendCount 
FROM eventcal AS e 
LEFT JOIN users AS u ON e.primary = u.username 
GROUP BY fname, MONTH(eventDate); 

你想要做你的聚合(SUM在這種情況下) ,GROUP BY如何讓他們總計(由fname,MONTH)。