I tried this much but after 10th column it throws an error of mysql syntax
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from emp_details a join emp_attendance b on b.emp_id=a.emp_id and b.time_in l' at line 1
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 ;