使用下面的 MySQL 查询,我创建了一个数据透视表,这几乎正是我正在寻找的。但是,我想用实际描述替换 NULL 值,例如 SubTotal 和 GrandTotal。这是我的 PHP 输出中显示的数据透视表格式(希望格式有点清晰!)。
Name Division 1 Division 2 Division 3 Division 4 Location
Name 1
Name 2
Name 3
NULL Total Total Total Total
Name 4
Name 5
NULL Total etc
NULL Column Grand Total
这是我用来生成表的查询。在研究了这个问题之后,似乎 CASE 功能是要走的路。但是,当我将两条 CASE 行添加到下面的查询中时,它似乎不想工作。返回的 mysql_error 表示“GROUPING 函数不存在”。
SELECT
CASE WHEN (GROUPING(name)=1) THEN 'MainTotal' ELSE name END AS name,
CASE WHEN (GROUPING(location)=1) THEN 'SubTotal' ELSE location END AS location,
name AS Name,
SUM(IF(division='OEM',totalHours,NULL)) AS OEM,
SUM(IF(division='A/M',totalHours,NULL)) AS AM,
SUM(IF(division='SKF',totalHours,NULL)) AS SKF,
SUM(IF(division='RE',totalHours,NULL)) AS RE,
location as Location
FROM $databasetable GROUP BY location, name
WITH ROLLUP
谁能告诉我我做错了什么?CASE 函数是替代 NULL 类别标题的方法吗?
提前致谢!