3
我的MySQL数据库具有以下列标题:MySQL查询和数据透视表
month, typeOfWork, totalHours
我感兴趣根据typeOfWork和月份显示的结果。例如,所有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”)。我的困惑来自于这样一个事实,即我简单地从脚本中的另一个工作数据透视表中调整了此表。我认为这种差异可能出现在我的两个要求中(总和为小时,其中月份等于列名,AND typeOfWork等于第一列中的typeOfWork)。我想知道我的IF语句是否需要AND子句?
任何人都可以用这个数据透视表指向正确的方向吗?这将不胜感激。谢谢!
你是我的英雄。这个窍门!我从来不会猜到,非常感谢。 :) – Andrew