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
我正在使用 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