select gjzqsj, SUM(case lbname when '安全环保' then item end) as '安全环保',
SUM(case lbname when '科研质量' then item end) as '科研质量' from cn_blog group by gjzqsj
刚测试过,有个小问题,你自己解决了
GJZQSJ 安全环保 科研质量
8月 1 1
9月 null 2
select gjzqsj, SUM(case lbname when '安全环保' then item end) as '安全环保',
SUM(case lbname when '科研质量' then item end) as '科研质量' from cn_blog group by gjzqsj
这个解决了行编列的问题、但是没有实现动态交叉的目的。
动态交叉得用到拼接sql:拼接 SUM(case lbname when '安全环保' then item end) as '安全环保',
这段内容。
得到最终的
select gjzqsj, SUM(case lbname when '安全环保' then item end) as '安全环保',
SUM(case lbname when '科研质量' then item end) as '科研质量',.... from cn_blog group by gjzqsj