对于交叉表的实现及多重表头的应用

本例所采用的交叉表的实现方式是建立在SQL的基础上,所以可能会由于使用的数据库不一致需要修改SQL,本例采用的是oracle9i,多重表头实现控件为C1FlexGrid。 首先看一个交叉表的SQL:
姓名 语文 数学
  其中 期末 期中 期末
12 2 44 55
24 2 55 5
交叉表效果 本SQL是将一个学生成绩按课目,期中、期末进行统计,就能够实现以人名为汇总的按课目、期数的交叉表,在这个交叉表中会有一个缺陷 1)可能由于课目并非固定而此sql就需要动态构建 2)可能并非所有课目都会有期中、期末成绩,那么就需要只对有期中或期末成绩的课目按期数做汇总 为此,需要通过动态构造交叉表,可考虑使用存储过程或程序构造sql,本人用C#写了一个通用的构造sql函数,但目前只支持3层交叉表头 如上执行sql将会得到一个构造好的sql,由于本人还需要用它做多重表头,所以在考虑了字段名做了些标记,以‘#’,‘-’做表头名值转化,以下是使用C1FlexGrid实现对多重表头的构造
原文地址:https://www.cnblogs.com/oldkingsir/p/2365647.html