【免责声明】:本文档或课程仅用于学习使用,未经授权,禁止转载。本文档或课程中所用数据均为虚构的模拟数据,不代表任何一家企业的真实情况, 如有权利人认为其中的任何内容存在侵权情况,请反馈给金蝶官方邮箱(DataSubjectRequest@kingdee.com),我们将在7个工作日内处理。
日常使用s-HR报表设计工具,现场总是提单反馈,查询的数据不正确,重复了、少了、或者是组织名称不对。
此贴给大家分享一下我日常排查这些问题的思路和做法:
如果报表页签公式取数 统计结果不对,多了或者少了,先检查公式计算的是哪个数据源的数据,将数据源取消隐藏查看数据源是否正确2、如果数据源取数不正确,则需要在报表设计工具找到数据源,先检查是不是自己勾选的过滤条件导致数据重复,或者少了。如果不是,则要数据源生成的sql检查,sql比较长,现场一般看到这就懵了。那应该怎么做呢
此贴我们来查一下数据重复这种情况: 1、可以将过滤条件加上职员编码。如图:
然后将生成的sql拷贝到 查询分析器,用查询分析器的sql格式化工具格式化一下。如图:
然后将格式化后的sql拷贝到Notepad++工具查看,对sql进行精简,及参数替换
(1)对sql进行精简:先从最前面找到第一个左括号,放入光标,括号变成红色。然后找到和这个括号对应的右括号(会变成红色)如图:
取这个对括号的内容拷贝到新的页签。
(2)替换sql参数,对上一步取的的精简后的sql,里面包含了一些变量参数带@符号的都是。我们需要对这些参数赋值。如下:
注意,这里的@baseDate就是基准日期,是现场查询报表数据时选择的界面日期 如图
其他的变量参数说明:@adminOrg 界面选择的组织编码、@ExtRptCurrentUserInfoID 登录的用户fid
(3)添加查询字段,对所有的参数都替换成具体的数值后。我们需要增加这个sql的查询字段,将每一个查询的表的fid都添加到查询字段中,原来的查询字段可以只保留员工姓名、编码,(重点是历史模型相关的表如组织历史表、职位历史表、职员历史表、职业信息历史表、任职经历表、任职历史表、员工员工关系状态表和员工其他多行页签的表) 如图:
(4)检查查询结果(分析是哪个表存在重复):修改好这个sql后,就可以到查询分析器去执行这个语句了,查询出来的数据列看看哪个字段是不一样的就是哪个表数据导致重复,如图,可以发现是PP这个表的不一样,说明职业信息表查到了两笔数据。检查我们sql中关于PP表的条件是否正确,正确就是后台存在脏数据。,这样可以直接查询出PP表看这个表这个职员的数据,生效时间、失效时间是否正确。纠正后台数据或者是调节前台报表的sql过滤条件。
推荐阅读