PeopleSoft 查询 - 查找没有休假类型的人员

PeopleSoft Query - finding people without leave type

我正在使用 PeopleSoft 的查询管理器,但我在创建一份报告时遇到了问题,该报告将查找所有没有特定休假类型的在职员工。

我有两个表(员工 - 未终止员工和 Leave_Accrual-EE)。它们是左外连接的。有问题的字段是 PLAN_TYPE。现在,我已经尝试创建一个过滤器来吸引所有没有计划类型 54 的员工。标准是 B.PLAN_TYPE 不等于 54,但这仍然会带来每个人,它只是没有带来54 行。

我觉得我遗漏了一些明显的东西 - 也许我必须创建一个子查询?如果是这样,我从未在 PeopleSoft 中这样做过。

有人有什么建议吗?

原始 SQL 屏幕截图。

已更新

这不是 PeopleSoft 问题,而是 SQL 问题。

您 运行 遇到的问题是您正在执行每行过滤器并仅排除具有不需要代码的行。

您需要做的是为在任何行中都有不需要的代码的用户排除所有行。

这可以通过 NOT IN 或 NOT EXISTS 查询来完成。 例如

SELECT EMPLID
FROM TABLE1
WHERE 
   EMPLID NOT IN 
   (
      SELECT EMPLID 
      FROM TABLE1 
      WHERE CODE = 123
   )
/

交替

SELECT A.EMPLID
FROM TABLE1 A
WHERE 
   NOT EXISTS 
   (
      SELECT B.EMPLID 
      FROM TABLE1 B
      WHERE 
         B.CODE = 123
         AND B.EMPLID = A.EMPLID
   )
/

查看此 SQL Fiddle 示例以测试 SQL: http://sqlfiddle.com/#!4/2b0f6/7

要在 PS 查询中执行此操作,您可以通过在等价的右侧添加一个带有子查询的条件来执行此操作。

这是一些文档:

Home > PeopleSoft PeopleTools 8.53 > PeopleSoft Query > Working with Subqueries