查询引擎应用案例之二_第1页
查询引擎应用案例之二_第2页
查询引擎应用案例之二_第3页
查询引擎应用案例之二_第4页
查询引擎应用案例之二_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、查询引擎应用案例如何实现投影交叉型报表的列间占比NC&HR 产品支持部.cn客户有这样的需求,希望能够实现如下报表。分析该报表是统计在职员工工龄分布情况的报表,按照时间段,统计出在每个时间段的人数。报表固定有 2 行,13 列,对于这种固定行数列数的报表,可以考虑使用查的询引擎的投影交叉方式实现。另外,报表中的比例是每个数据列占合计列的百分比,所以是属于求列间占比,只能使用查询引擎的数据加工来实现列间占比。实现步骤:1 在查询引擎的查询设计中,制作报表,首先实现按年统计人数,及求人数的合计。注:用户统计的工龄,需要保留两位小数,所以建议使用系统函数 datediff,datediff(day,

2、bd_asndoc.joinworkdate,getdate()。因为 datediff 的返回值是整型,所以需要使用 convert(或者cast)转换成浮点型,然后再除以 365,保留两位小数。通过以上设置,实现了人数的统计。2 增加比例行,通过数据加工,求列间占比。1)在报表中增加一行,比例,筛选条件可以设置为 1=1。这样12 列的报表雏形。可以得到一个 2 行2)投影交叉报表用i,j定位单元格,其中 i,j 从 0 排起。即:01-06 个月,比例值1,0 =07-12 个月,比例值1,1 =人数0,0/合计0,11人数0,1/合计0,11人数0,2/合计0,11人数0,3/合计0,

3、11人数0,4/合计0,11人数0,5/合计0,11人数0,6/合计0,11人数0,7/合计0,11人数0,8/合计0,11人数0,9/合计0,1101-02 年,02-03 年,03-04 年,04-05 年,05-06 年,06-07 年,07-08 年,08-09 年,09-10 年,比例值1,2 =比例值1,3 =比例值1,4 =比例值1,5 =比例值1,6 =比例值1,7 =比例值1,8 =比例值1,9 =比例值1,10 = 人数0,10/合计0,1110 年以上, 比例值1,11 = 人数0,11/合计0,11另外,3.1 版在进行数据之间的加、减、乘、除之前,必须先将数据进行类型

4、的转换,否则无法得到正确的结果。因此,以上的公式就必须写成:01-06 个月,比例值1,0 = toNumber(toString(0,0)/toNumber(toString(0,11)07-12 个月,比例值1,1 = toNumber(toString(0,1)/toNumber(toString(0,11)01-02 年,02-03 年,03-04 年,04-05 年,05-06 年,06-07 年,07-08 年,08-09 年,09-10 年,比例值1,2 = toNumber(toString(0,2)/toNumber(toString(0,11)比例值1,3 = toNumb

5、er(toString(0,3)/toNumber(toString(0,11)比例值1,4 = toNumber(toString(0,4)/toNumber(toString(0,11)比例值1,5 = toNumber(toString(0,5)/toNumber(toString(0,11)比例值1,6 = toNumber(toString(0,6)/toNumber(toString(0,11)比例值1,7 = toNumber(toString(0,7)/toNumber(toString(0,11)比例值1,8 = toNumber(toString(0,8)/toNumber

6、(toString(0,11)比例值1,9 = toNumber(toString(0,9)/toNumber(toString(0,11)比例值1,10 = toNumber(toString(0,10)/toNumber(toString(0,11)10 年以上, 比例值1,11 = toNumber(toString(0,11)/toNumber(toString(0,11) 使用数据加工,单元公式设置,查询对象选择正在制作的报表“员工在籍年资区分表”,定义单元公式,用“-”代替“=”,返回值类型选择“小数”。确定后进行语法验证。这样就得到了一个基本满足用户要求的报表。3)4)进行格式设

7、计的时候发现,由于是使用投影交叉方式实现的报表,所以进行格式设计比较,不能实现一行显示整数,一行显示百分比。所以考虑只能在查询设计的时候进行处理,如:01-06 个月,比例值1,0-round(toNumber(toString(0,0)/toNumber(toString(0,11)*100,2)07-12 个月,比例值1,1-round(toNumber(toString(0,1)/toNumber(toString(0,11)*100,2)01-02 年,02-03 年,03-04 年,04-05 年,05-06 年,06-07 年,07-08 年,比例值1,2-round(toNumb

8、er(toString(0,2)/toNumber(toString(0,11)*100,2)比例值1,3-round(toNumber(toString(0,3)/toNumber(toString(0,11)*100,2)比例值1,4-round(toNumber(toString(0,4)/toNumber(toString(0,11)*100,2)比例值1,5-round(toNumber(toString(0,5)/toNumber(toString(0,11)*100,2)比例值1,6-round(toNumber(toString(0,6)/toNumber(toString(0,11)*100,2)比例值1,7-round(toNumber(toString(0,7)/toNumber(toString(0,11)*100,2)比例值1,8-round(toNumber(toString(0,8)/toNumber(toString(0,11)*100,2)08-09 年, 比例值1,9-round(toNumber(toString(0,9)/toNumber(toString(0,11)*100,2)09-10 年,比例值1,10-round(toNumber(toString(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论