【发布时间】:2019-07-14 14:14:51
【问题描述】:
我正在尝试在(Fusion BI 报告)中创建 HCM 报告,以检索所选年份“所有月份”的员工人数。
在当前情况下,当我们运行“2017”报告时,它会检索 7 月、8 月、9 月的员工总数
需要什么: 当参数 = '2017' AND 9 月之后的月份为 null 时,获取最后一个存在的值,即 'Sept' 中的值
Month Name Current result Expected result
July 1 1
Aug 3 3
Sept 4 4
Oct 4
Nov 4
Dec 4
我的查询
SELECT PIVOT_TBL.* FROM
(SELECT
COUNT(PAPF.PERSON_ID) OVER (ORDER BY TO_CHAR(PAPF.START_DATE,'MM-YYYY')) AS OP_BALANCE,
EXTRACT (MONTH FROM PAPF.START_DATE) AS OMONTHS
FROM
PER_ALL_PEOPLE_F PAPF,
PER_ALL_ASSIGNMENTS_M PAAM,
PER_PERSONS PP
WHERE
PAAM.PERSON_ID = PAPF.PERSON_ID
AND PP.PERSON_ID = PAPF.PERSON_ID
------------------------------------------------
AND PAAM.ASSIGNMENT_TYPE = 'E'
AND PAAM.PRIMARY_FLAG = 'Y'
AND PAAM.EFFECTIVE_LATEST_CHANGE = 'Y'
AND PAAM.ASSIGNMENT_STATUS_TYPE = 'ACTIVE'
-------------------------------------------------
AND TRUNC(SYSDATE) BETWEEN PAPF.EFFECTIVE_START_DATE AND PAPF.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PAAM.EFFECTIVE_START_DATE AND PAAM.EFFECTIVE_END_DATE
AND TO_CHAR(PAPF.START_DATE,'YYYY')='2017'
ORDER BY 2)SRC_TABLE
PIVOT
(MAX(OP_BALANCE) AS EJ FOR OMONTHS IN
('1' AS JAN , '2' AS FEB , '3' AS MAR , '4' AS APR , '5' AS MAY , '6' AS JUNE ,
'7' AS JUL , '8' AS AUG , '9' AS SEPT, '10' AS OCTO, '11' AS NOV , '12' AS DECE)
)PIVOT_TBL
【问题讨论】: