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

时间:2018-01-08 16:50:48

标签: peoplesoft

我正在与PeopleSoft的查询管理器合作,我在创建报告时遇到问题,该报告将找到所有没有特定休假类型的活跃员工。

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

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

有人有什么建议吗?

原始SQL截图。

enter image description here

已更新

enter image description here

1 个答案:

答案 0 :(得分:1)

这不是一个PeopleSoft问题,更像是一个SQL问题。

您遇到的问题是您正在执行每行过滤器,并且只排除具有不良代码的行。

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

这可以使用NOT IN或NOT EXISTS查询来完成。 e.g。

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 Query中执行此操作,可以通过在等效项的右侧添加带有子查询的条件来实现此目的。

add subquery

compare using NOT EXISTS or maybe NOT IN

以下是一些文档:

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