我是PeopleSoft和SQL的新手,需要一些幫助來解決這個問題。如果那麼在PeopleSoft查詢語句
我想弄清楚如何在PS Query中使用if-then類型的語句來最好地編寫查詢。我認爲案例陳述應該起作用。
標準來滿足(這是我堅持的部分): IF域ACTION = TER然後場DEPTID <> 140,652,653,997
我的情況說明: 情況下A.ACTION ='TER',那麼A.DEPTID不在('140','652','653','997')end
如果會的話,我不知道如何在我的SQL語句中使用它。我試圖在子查詢和表達式中使用它,但它不起作用。
當我試圖加入這個case語句到標準作爲一種表達,在PS查詢工具拋出這個錯誤:
錯誤的位置:347回:905 - ORA-00905:缺少關鍵字 失敗
我不知道哪個關鍵字丟失。
我的詢問,到目前爲止有:AND:
SELECT *
FROM
PS_JOB A,
PS_EMPLMT_SRCH_QRY A1,
PS_COL_HR_WF_ROLE B,
PS_NAMES_VW C,
PS_NAMES_VW D,
PS_PER_ORG_ASGN E,
PS_EMPLMT_SRCH_QRY E1,
PS_ACTN_REASON_TBL F,
PS_ACTION_TBL G
WHERE (A.EMPLID = A1.EMPLID
AND A.EMPL_RCD = A1.EMPL_RCD
AND (A.ACTION_DT = TO_DATE('2016-07-19','YYYY-MM-DD')
AND A.EMPL_RCD = B.EMPL_RCD
AND A.DEPTID <> '997'
AND A.REG_TEMP = 'R'
AND A.FULL_PART_TIME = 'F'
AND B.ROLENAME = 'name of role'
AND B.ACTION = A.ACTION
AND B.ACTION_REASON = A.ACTION_REASON
AND C.EMPLID = A.EMPLID
AND C.NAME_TYPE = 'PRI'
AND D.NAME_TYPE = 'PRI'
AND A.SUPERVISOR_ID = D.EMPLID
AND E.EMPLID = A.EMPLID
AND E.EMPL_RCD = A.EMPL_RCD
AND F.ACTION = B.ACTION
AND F.ACTION_REASON = B.ACTION_REASON
AND G.ACTION = F.ACTION
)) 前面的括號END(如下圖),當我用下面的case語句中的表達式,情況如下最後一行後移G.ACTION = F.ACTION。
AND A.ACTION = Case when A.ACTION = 'TER' then A.DEPTID not in ('140','652','653','997') end))
我對此很新,歡迎任何幫助。
嗨,這個運行沒有錯誤。我將在下週與我的導師覈實,返回的結果是我們所期望的。謝謝你的幫助。 – Tony