有人可以告诉我什么是滚动总和以及如何在 Informatica 中实现它吗?
我的要求如下:(由客户提供)
ETI_DUR : SUM(当 AGENT_EXPNCD_DIM.EXCEPTION_CD='SYS/BLDG 问题 ETI' THEN IEX_AGENT_DEXPN.SCD_DURATION ELSE 0 END 时的情况)
ETI_30_DAY : ROLLING SUM (CASE WHEN (SYSDATE-IEX_AGENT_DEXPN.ROW_DT)<=30 AND AGENT_EXPNCD_DIM.EXCEPTION_CD = 'SYS/BLDG ISSUES ETI' THEN IEX_AGENT_DEXPN.SCD_DURATION ELSE 0 END)
eti_30_day_ovrg: eTi_dur> 0的情况,然后在0到600之间滚动(eti_dur_30_day持续29天)和600和滚动(eTi_dur_30_day持续29天)过去 29 天)> 600 然后 ETI_DUR ELSE 0 END ELSE 0 END
我已经在 Informatica 中实现如下。
表达式转换:
o_ETI_DUR-- IIF(UPPER(EXCEPTION_CD_AGENT_EXPNDIM)='SYS/BLDG ISSUES ETI',SCD_DURATION,0)
o_ETI_29_DAY-- IIF(DATE_DIFF(TRUNC(SYSDATE),trunc(SCHD_DATE),'DD') <=29 AND UPPER(EXCEPTION_CD_AGENT_EXPNDIM) = 'SYS/BLDG ISSUES ETI' ,SCD_DURATION,0)
o_ETI_30_DAY -- IIF(DATE_DIFF(TRUNC(SYSDATE),trunc(SCHD_DATE),'DD') <=30 AND UPPER(EXCEPTION_CD_AGENT_EXPNDIM) = 'SYS/BLDG ISSUES ETI' ,SCD_DURATION,0)
聚合器转换:
o_ETI_30_DAY_OVRG: IIF(sum(i_ETI_DUR) > 0, IIF((sum(i_ETI_29_DAY)>=0 and sum(i_ETI_29_DAY)<=600) and (sum(i_ETI_29_DAY)+sum(i_ETI_DUR)) > 600, sum(i_ETI_30_DAY) - 600,IIF(总和(i_ETI_29_DAY)>600,总和(i_ETI_DUR),0)),0)
但不工作。请尽快帮助。
非常感谢....!