NC查询引擎使用文档V3.1(4)

2018-12-15 17:50

3. 数据交叉

3.1 第一类(投影)交叉

〃 投影交叉:假定有一个查询SQL,其查询结果是单行单列的汇总值,另外还有两组WHERE条件的序列,分别为横向序列(WhereX1、WhereX2、……、WhereXn)和纵向序列(WhereY1、WhereY2、……、WhereYn),则数据矩阵A(aij)对应的结果集成为投影交叉,如果aij是WhereXi和WhereYj同时作用在上述SQL上获得的结果。

比如,某查询用于某公司下各部门各民族的人数,原始SQL(由查询向导生成的等效SQL)为:

select bd_deptdoc.deptname as deptname,

bd_defdoc.docname as docname,

count(bd_psndoc.pk_psndoc) as psnno

from bd_deptdoc

left outer join bd_psndoc on bd_deptdoc.pk_deptdoc= bd_psndoc.pk_deptdoc

left outer join bd_accpsndoc on bd_psndoc.pk_psndoc=bd_accpsndoc.pk_psndoc

left outer join bd_defdoc on bd_accpsndoc.nationality=bd_defdoc.pk_defdoc where bd_deptdoc.pk_corp = ?

group by bd_deptdoc.deptname, bd_defdoc.docname

查出的结果如下表所示:

图 3-15 原始数据(无交叉)

现在我们把查询字段中只保留人数count(bd_psndoc.psncode)一项,然后进行如下的投影交叉设置:

第 13 页

图 3-16 投影交叉设置

则交叉后的结果如下表所示:

图 3-17 投影交叉结果

3.2 第二类(旋转)交叉

〃 旋转交叉:此类交叉用于显示表中某几个字段(称为交叉值字段)的统计值,并将其分组放臵在查询结果中,一组列在数据表的左侧(称为交叉行字段),一组列(称为交叉列字段)旋转到数据表的上部成为列表头,统计值则放在对应的交叉单元。

关于旋转交叉的更细节的内容,请参考李媛媛所著的《交叉表使用说明》。

两类交叉的最大差别在于:第一类交叉属于查询行为,适用于行列设置都已在表样中固定的报表,其交叉结果严格遵循表样格式,其行列结构不会受查询数据的影响;第二类交叉属于数据加工行为,其交叉后的行列结构在查询出数据之前不可预料,多用于完全真实地对原始数据进行动态处理。

沿用3.1使用的例子,假定我们进行如下的旋转交叉设置(其中交叉砝码的意义是代表交叉值字段的位置,它只能出现在交叉行字段或交叉列字段当中):

第 14 页

图 3-18 旋转交叉设置

则交叉后的结果如下表所示:

图 3-19 旋转交叉结果

〃 在旋转交叉设臵界面上单击行,列,值标签(在图3-18中用蓝色框标示的位臵),可弹出交叉行列复合维度设臵和是否小计的设臵框。

第 15 页

图 3-20 旋转交叉结果(设置了小计)

4. 代码嵌入 4.1 SQL整理

〃 SQL整理(SQL Repair):指在SQL查询之前,对SQL所作的调整。通常会根据参数的不同,对查询的表、字段或条件等信息进行增补或修改。

SQL整理的具体内容由内嵌的代码片段描述(这与后面将介绍的数据加工和穿透规则一样),代码的录入可通过编码向导协助完成,尽管如此,这几种功能仍然推荐由高级实施人员或程序员使用。

第 16 页

图 3-21 SQL整理代码

在图示的SQL整理代码中,表达了这样一个整理愿望:当参数“detail”取值为“Y”时,引擎会在本查询对象已完成的SQL设计基础上多查询一张表(bd_defdoc)和两个字段(档案编码、档案名称),从而获得更明细的查询信息;如果该参数取值不为“Y”,则仍然按照SQL设计的定义去执行查询。

以下简单介绍几种SQL整理算法的编码向导使用方法:

(1) 追加查询表:参数为待追加的表物理名。

图 3-22 追加表向导

(2) 追加连接条件:与追加表同时使用,参数为连接模式、追加表物理名和追加的

表间连接条件。

第 17 页


NC查询引擎使用文档V3.1(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中高职教育衔接的金融管理专业课程方案设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: