ibatis中的行转列,列不固定的解决方法
1、取得不同情况需要的列的List。?
? ? ??pageParam.put("kpiList", kpiList);
tempList = daoHelper.queryForList("XXX.queryAssignKpi2", pageParam);?2、行列转置sql
select org_id,ORG.NAME, <iterate property="kpiList" conjunction=","> sum(decode(target_id, '$kpiList[]$', target_value, 0)) as "$kpiList[]$1", sum(decode(target_id, '$kpiList[]$', ACHIEVE_VALUE, 0)) as "$kpiList[]$2", (sum(decode(target_id, '$kpiList[]$', ACHIEVE_VALUE, 0)) / decode(sum(decode(target_id, '$kpiList[]$', target_value, 0)),0,1, sum(decode(target_id, '$kpiList[]$', target_value, 0)))) * 100 as "$kpiList[]$3" </iterate> from ASV inner join ORG ON ASV.ORG_ID = ORG.ID and ORG.PARENT_ID=#ORG_ID#group by ASV.org_id,ORG.NAME?3、注意,由于列不固定,列变化后会报错,解决方法参考http://woshiwanxin102213.iteye.com/admin/blogs/1512723