MYSQL下面查询动态列名称的问题。注意,当T_Date列值是字母,并且似乎仅在日期值时才发生此问题。
任何想法,是什么使它无法与日期值一起运行?我感觉我需要在返回时转换为字符串,但是不确定,因为我不是DB专家。
另附表截图以供参考:
复制SQL Fiddler链接以进行快速验证http://sqlfiddle.com/#!9/43f654/1
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'sum(case when T_Date= ''',
T_Date,
''' then T_W_Hours else 0 end) AS ',
T_Date
)
) INTO @sql
FROM timesheet;
SET @sql = CONCAT('SELECT T_empid, ', @sql, ', sum(T_W_Hours) as `count`
FROM timesheet
GROUP BY T_empid');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
1: