Процедура Mysql, показывающая только 10 столбцов после преобразования строк в столбцы
For example: Name | 1stjan | 2ndjan | 3rdjan | 4thjan jenny | present | absent | present | present clark | absent | present | present | present Original tables - emp_details id | emp_id | Name 1 | 51 | jenny 2 | 52 | clark Original tables - emp_attendance id | emp_id | status | Date 1 | 51 | present | 2017/01/02 2 | 52 | present | 2017/01/02
Что я уже пробовал:
Я попробовал это сделать, и он работает нормально, но после 10 столбцов ... он выдает ошибку синтаксиса mysql
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 ;
Afzaal Ahmad Zeeshan
Ну и что? Где находится HTML-контент для представлений? Данные, похоже, работают нормально (на случай, если возникнут проблемы, которых я не видел). Кроме того, разве вам не нужно было бы присоединиться к столам, а не просто выбирать их?
mridulkoul123
прямо сейчас вид такой:
Наименование | код emp_id| статус | дата
Дженни / 51 / настоящее время | 1stjan
clark / 52 / present | 2ndjan
И я хочу этого, как:
Имя / 1stjan | 2ndjan | 3rdjan | 4thjan
Дженни / присутствует / отсутствует / присутствует / присутствует
Кларк / отсутствует / присутствует / присутствует / присутствует
Afzaal Ahmad Zeeshan
Хорошо, тогда вам нужно транспонировать строки в зависимости от даты. В ASP.NET, вы можете сделать это, используя группировку данных на основе имени, а также даты записей.
mridulkoul123
можете ли вы показать это на примере
anup.bhunia
эта статья может вам помочь
https://www.codeproject.com/Articles/44274/Transpose-a-DataTable-using-C