表单设计
CREATE TABLE `erp_apply_form` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长id',
`form_title` varchar(100) DEFAULT NULL COMMENT '表单抬头,如果是容器或者表格,容器表格头名称',
`form_value` varchar(1000) DEFAULT NULL COMMENT '表单值',
`form_group_id` int(11) DEFAULT NULL COMMENT '表单组,多个表单纳入一个组里,此值等于组的id''',
`table_num` int(11) DEFAULT NULL COMMENT '行号',
PRIMARY KEY (`id`) USING BTREE,
KEY `form_group_id` (`form_group_id`)
)
1、初始效果
2、行转列效果
3、最终列合并效果
sql实现
select
#列合并
GROUP_CONCAT(changeContext SEPARATOR '') changeContext,
GROUP_CONCAT(changeBefore SEPARATOR '') changeBefore,
GROUP_CONCAT(changeAfter SEPARATOR '') changeAfter,
GROUP_CONCAT(isChange SEPARATOR '') isChange
from(
#行转列
select
table_num,
(case when form_title='变更内容' then form_value else '' end) as 'changeContext',
(case when form_title='变更前' then form_value else '' end) as 'changeBefore',
(case when form_title='变更后' then form_value else '' end) as 'changeAfter',
(case when form_title='是否变化' then form_value else '' end) as 'isChange'
from
erp_apply_form
WHERE
form_group_id='63912' ORDER BY id
) form
GROUP BY form.table_num
注意事项:
GROUP_CONCAT:列合并
SEPARATOR :设置分隔符