You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Crystal报表查询:筛选缺失指定扣款码FAMLI的工资单

解决方案:筛选缺失指定扣款码的Crystal Reports记录

你的原始查询仅筛选了扣款码为空的行,但实际需求是某员工在指定日期的工资单中完全没有FAMLI这个扣款码,可以通过以下两种方式实现:

方法1:子查询排除已存在FAMLI的记录

在Crystal Reports的选择公式中,用子查询过滤掉已包含FAMLI扣款码的工资单:

{UPR00100.EMPLCLAS} startswith ["", "CO"] 
and {UPR30300.CHEKDATE} in Date (2024,1,18) to Date (2024,1,31)
and not exists (
    select * from UPR30300 as sub
    where sub.EMPLOYID = {UPR30300.EMPLOYID}
    and sub.CHEKDATE = {UPR30300.CHEKDATE}
    and sub.PAYROLCD = "FAMLI"
)

逻辑说明:先锁定目标州员工和指定日期的工资单,再排除同一员工同一发薪日期下已存在FAMLI扣款码的记录,剩余结果即为缺失FAMLI的工资单。

方法2:分组汇总验证

如果子查询使用受限,可通过分组统计实现:

  1. 按EMPLOYID(员工ID)和CHEKDATE(发薪日期)创建分组
  2. 组选择公式添加:
Sum(if {UPR30300.PAYROLCD} = "FAMLI" then 1 else 0) = 0

同时保留基础筛选条件:

{UPR00100.EMPLCLAS} startswith ["", "CO"] 
and {UPR30300.CHEKDATE} in Date (2024,1,18) to Date (2024,1,31)

逻辑说明:统计每组(单个员工的单次工资单)中FAMLI的出现次数,次数为0的即为缺失该扣款码的记录。

注意事项

  • 确认EMPLOYID+CHEKDATE是唯一标识单次工资单的字段,若系统有专属工资单编号字段,可替换使用
  • 检查PAYROLCD的大小写是否与系统存储一致,避免因大小写不匹配导致筛选失效

内容的提问来源于stack exchange,提问作者Kris Adams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 01:13:13