天天看點

資料透視表mysql_MySQL查詢和資料透視表

我的MySQL資料庫有以下列标題:

month, typeOfWork, totalHours

我有興趣根據typeOfWork和month顯示結果.例如,所有typeOfWork條目将顯示在左側的第一列中,并且每個字段将在每個列的指定月份中累計該特定typeOfWork.是以,我的SQL資料透視表語句目前是:

SELECT

IFNULL(typeOfWork, 'Total') AS TypeOfWork,

SUM(IF(month='JAN',totalHours,NULL)) AS JAN,

SUM(IF(month='FEB',totalHours,NULL)) AS FEB,

SUM(IF(month='MAR',totalHours,NULL)) AS MAR,

SUM(IF(month='APR',totalHours,NULL)) AS APR,

SUM(IF(month='MAY',totalHours,NULL)) AS MAY,

SUM(IF(month='JUN',totalHours,NULL)) AS JUN,

SUM(IF(month='JUL',totalHours,NULL)) AS JUL,

SUM(IF(month='AUG',totalHours,NULL)) AS AUG,

SUM(IF(month='SEP',totalHours,NULL)) AS SEP,

SUM(IF(month='OCT',totalHours,NULL)) AS OCT,

SUM(IF(month='NOV',totalHours,NULL)) AS NOV,

SUM(IF(month='DEC',totalHours,NULL)) AS DEC

FROM $databasetable GROUP BY typeOfWork

WITH ROLLUP

我目前收到指定最後一行的文法錯誤(從’DEC到ROLLUP’).我的困惑來自于我在我的腳本中簡單地從另一個工作資料透視表中調整了這個表.我認為差異可能在于我的兩個要求(sum totalHours,其中月份等于列名稱,而typeOfWork等于第一列中的typeOfWork).我想知道我的IF語句是否需要AND條款?

任何人都可以通過此資料透視表向我指出正确的方向嗎?這将不勝感激.謝謝!