好的,所以我在这里挣扎。我们有一个跟踪某个用户 ID 的表。一行有 ID,第二行有非活动 ID。它看起来像这样:
B.MISC_INFO | 日期 | B.MISC_VALUE |
---|---|---|
积极的 | 20 年 1 月 1 日 | BXXXX |
不活跃 | 21 年 1 月 1 日 | BXXXX |
积极的 | 22 年 1 月 1 日 | B2XXX |
我使用查询管理器创建了一个报告,它同时引入了两种活动状态。我需要它只拉入活动状态而没有相应的非活动状态(在上面的示例中,“B2XXX”值)。
现在视图 SQL 选项卡上的 SQL 如下所示:
SELECT DISTINCT A.EMPLID, A.NAME, B.MISC_INFO, B.MISC_VALUE
FROM ((PS_EMPLOYEES A INNER JOIN PS_EMPLMT_SRCH_QRY A1 ON (A.EMPLID = A1.EMPLID AND A.EMPL_RCD = A1.EMPL_RCD AND A1.OPRID = 'XXXXXXXX' )) LEFT OUTER JOIN PS_FTI_EMP_MISC2 B ON A.EMPLID = B.EMPLID AND B.MISC_INFO = 'Active' )
WHERE ( ( A.EFFDT =
(SELECT MAX(A_ED.EFFDT) FROM PS_EMPLOYEES A_ED
WHERE A.EMPLID = A_ED.EMPLID
AND A.EMPL_RCD = A_ED.EMPL_RCD
AND A_ED.EFFDT <= SUBSTRING(CONVERT(CHAR,GETDATE(),121), 1, 10))
AND A.EFFSEQ =
(SELECT MAX(A_ES.EFFSEQ) FROM PS_EMPLOYEES A_ES
WHERE A.EMPLID = A_ES.EMPLID
AND A.EMPL_RCD = A_ES.EMPL_RCD
AND A.EFFDT = A_ES.EFFDT)
AND B.MISC_VALUE LIKE 'B%' ))
我想过写一个案例陈述,但我想不通。