Как я могу заменить пустые заголовки категорий в функции MySQL ROLLUP?

Используя приведенный ниже запрос 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?

Заранее спасибо!

7
задан Andrew 25 July 2011 в 21:37
поделиться