一列多行进行列转行操作

      其实列转行,可以在数据库当中转换,也可以在程序中进行转换,因为我这个设计多张表所以在程序当中进行转换,在nosql非关系型数据库当中,可以把行转列看成一个矩阵,这个矩阵的列可以进行90度的转换,在非关系型数据库当中,这样做会很简单,但是在关系型数据库当中这样做就很复杂了。

  我说一下,我的java代码的实现,前提我手上有三张表分别为:

    T50_ETL_REPORT; // 指标中间表

    T00_INDIC_DICT;   //指标表

    T00_ORGAN //机构表

我先说一下这三张表的关系:

    指标中间表包括指标表里面的指标key和机构key

每个机构下面包含很多个指标,每个指标下面包含我们要的业务值;

好吧,接下来我使用map和list来做的,首先map的key是不允许重复的所以导致可以区分每个orgId,产生唯一性。

1、我先根据页面的筛选条件来找到orgList和指标keyList;

 2、然后遍历orgList 下面套了一层keyList循环,根据指标key和orgId和日期来唯一确定一个,我所需要的valueList;

 3、如果valueList不为空则创建一个mapval把指标key作为key,valueList作为list存到mapval当中,然后创建一个contendList把map存到list中;

 4、如果contendList不为空则创建一个mapOrg 然后把orgId作为key,contendList作为value;

 5、然后创建一个mapAllList把我们mapOrg 放到list中然后给前端;

 6 .然后前端依据orgId和指标key来进行遍历匹配找到我们想要的value;

根据思路就可以写出代码了,加油



你可能感兴趣的:(项目经验)