C# Mysql存储过程函数,行到列动态转换后仅显示10列
我尝试了很多,但在第10列之后,它抛出了一个mysql语法错误 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 “近”来自emp_详情a加入emp_出席b在b上。emp_id=a.emp_id b.在1号线的l'中的时间C# Mysql存储过程函数,行到列动态转换后仅显示10列,c#,mysql,asp.net,stored-procedures,C#,Mysql,Asp.net,Stored Procedures,我尝试了很多,但在第10列之后,它抛出了一个mysql语法错误 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 “近”来自emp_详情a加入emp_出席b在b上。emp_id=a.emp_id b.在1号线的l'中的时间 我真的不知道“10行”和您的错误消息(这意味着没有结果)之间的关系意味着什么,但对于group\u concat,最有可能出现问题的嫌疑是结果字符串的最大长度,试试看,例如,谢谢……它起作用了……但我无法将它标记为您在评论部分评论的答案……但
我真的不知道“10行”和您的错误消息(这意味着没有结果)之间的关系意味着什么,但对于
group\u concat
,最有可能出现问题的嫌疑是结果字符串的最大长度,试试看,例如,谢谢……它起作用了……但我无法将它标记为您在评论部分评论的答案……但仍然感谢……)
DELIMITER $$
DROP PROCEDURE IF EXISTS `attendance_reg`.`new2` $$
CREATE PROCEDURE new2 (IN ddl1 varchar(100))
BEGIN
SET @sql = NULL;
SET @vardomain := CONCAT(ddl1,'%');
select GROUP_CONCAT(DISTINCT
CONCAT(' Max(CASE WHEN DATE_FORMAT(b.time_in, ''%D %M'') = ''',
DATE_FORMAT(time_in, '%D %M'),
''' THEN b.status END) AS ''',
DATE_FORMAT(time_in, '%D %M'), ''''
)
ORDER BY time_in)
INTO @sql
from emp_attendance where time_in like @vardomain;
SET @sql = CONCAT('SELECT b.emp_id ,a.emp_name ,', @sql, ' from emp_details a join emp_attendance b on b.emp_id=a.emp_id and b.time_in like ',@vardomain,' Group By a.emp_name order by a.emp_dept,a.emp_name');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END $$
DELIMITER ;