我有以下程序
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `ptl_head`()
BEGIN
SET @sql = NULL;
SELECT GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(CASE WHEN month(alloc_date) = ''',
month(alloc_date),
''' THEN emp_code END) `',
month(alloc_date),'_',year(alloc_date),
'`'
)
)
INTO @sql
FROM daily_report;
SET @sql = CONCAT('SELECT emp_code, ', @sql, '
FROM daily_report
GROUP BY emp_code');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
我想添加 emp_code 的计数作为输出,但我得到 emp_code 作为输出。有人帮我解决这个问题
最佳答案
怎么样 -
SET @sql = CONCAT('SELECT emp_code, ', @sql '
FROM daily_report
GROUP BY emp_code
UNION ALL
SELECT "Count", COUNT(*), month(alloc_date), '_', year(alloc_date)
FROM daily_report');
关于mysql - 在 group_concat() 中添加 count() 的过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46110071/