0
該查詢給了我,我需要讓動態的,所以當年列沒有硬編碼:總和由每個用戶,用戶組,動態列年度每年
SELECT u.last_name as 'Name',
COUNT(e.user_id) as 'Total',
SUM(CASE WHEN YEAR(e.datetime)=2012 THEN 1 END) as '2012',
SUM(CASE WHEN YEAR(e.datetime)=2013 THEN 1 END) as '2013',
SUM(CASE WHEN YEAR(e.datetime)=2014 THEN 1 END) as '2014',
SUM(CASE WHEN YEAR(e.datetime)=2015 THEN 1 END) as '2015',
SUM(CASE WHEN YEAR(e.datetime)=2016 THEN 1 END) as '2016'
FROM entries e, users u
WHERE e.user_id = u.user_id
GROUP BY e.user_id
有沒有辦法動態創建年份列,並使用mysql動態地將它們求和?我當然可以用一些PHP來做,但是想知道在純MySQL中是否可行。
當前查詢輸出是這樣的:
Name Total 2012 2013 2014 2015 2016
Smith 568 186 124 162 75 21
Jones 579 188 156 160 68 7
你不能,真。這是一個數據透視查詢,並且mysql不直接支持它們。你有什麼是標準的解決方法,正如你所看到的,它不能是動態的。改爲使用客戶端代碼。它會簡化您的查詢 –
Gotchya。馬克,謝謝,謝謝。 –