IF EXISTS(SELECT
FROM SYS.TABLES WHERE NAME=‘SPD‘) DROP TABLE SPD; WITH CTE1 AS ( SELECT IIF(PD_DueDT>=ISNULL(PD_DebitSuccDT,‘9999-12-31‘),1) AS FLAG/逾期FLAG
/, ROW_NUMBER() OVER(PARTITION BY PD_EFH_SN ORDER BY PD_Termth) AS ID/期次序号
/, MAX(PD_Termth) OVER (PARTITION BY PD_EFH_SN)AS CurrID/当前最大期次序号*/,
-
FROM PD WHERE PD_DueDT<=GETDATE() AND PD_Termth>0 ), CTE2 AS ( SELECT SUM(FLAG) OVER(PARTITION BY PD_EFH_SN ORDER BY PD_Termth ROWS UNBOUNDED PRECEDING) AS AccuFlag/累计逾期期次/,
-
FROM CTE1 ), CTE3 AS ( SELECT ID-AccuFlag AS FlagGrp/逾期分组/,
-
FROM CTE2 ), CTE4 AS ( SELECT SUM(FLAG) OVER (PARTITION BY PD_EFH_SN,FlagGrp) AS CountFlag/分组计数/,
-
FROM CTE3 WHERE FLAG=1 ), CTE5 AS ( SELECT MAX(CountFlag) OVER (PARTITION BY PD_EFH_SN) AS MaxContFlag/最大连续/, MAX(AccuFlag) OVER (PARTITION BY PD_EFH_SN) AS TotFlag/历史累计/, IIF(ID=PD_TotTerm,CountFlag,0) AS CurrContFlag/当前累计/, ROW_NUMBER() OVER (PARTITION BY PD_EFH_SN ORDER BY PD_Termth DESC) AS CurrTermth,
-
FROM CTE4)SELECT DISTINCT PD_EFH_SN,MaxContFlag,TotFlag,CurrContFlag,‘XFY‘ AS DataSource INTO SPD FROM CTE5 WHERE CurrTermth=1
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|