C# Mysql存储过程函数,行到列动态转换后仅显示10列

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列之后,它抛出了一个mysql语法错误

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 “近”来自emp_详情a加入emp_出席b在b上。emp_id=a.emp_id b.在1号线的l'中的时间


我真的不知道“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 ;