我的 MySQL 数据库具有以下列标题:
month, typeOfWork, totalHours
我有兴趣根据工作类型和月份显示结果。例如,所有 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”)的语法错误。我的困惑来自于我只是从脚本中的另一个工作数据透视表改编了该表。我认为差异可能在于我的两个要求(总小时数,其中月份等于列名并且 typeOfWork 等于第一列中的 typeOfWork)。我想知道我的 IF 语句是否需要 AND 子句?
有人能用这个数据透视表为我指出正确的方向吗?这将不胜感激。谢谢你!