我已达到根据日期列中提供的计算结束日期的要求。让我举例说明。我有两个专栏1)ACCT_NO和2)AUD_IN。
因此,我必须根据AUD_IN日期的下一行添加AUD_END列。例如我的数据如下。
ACCT_NO | AUD_IN |
------------------
A0001 |23-06-01
A0001 |22-01-04
A0001 |09-09-06
A0002 |14-02-02
A0002 |07-07-09
A0003 |19-08-08
我的实际需求输出如下。
ACCT_NO | AUD_IN | AUD_END
--------------------------
A0001 |23-06-01|21-01-04
A0001 |22-01-04|08-09-06
A0001 |09-09-06| null
A0002 |14-02-02|06-07-09
A0002 |07-07-09| null
A0003 |19-08-08| null
因此,我借助ORACLE LEAD功能实现了上述目的:
SELECT ACCT_NO,
AUD_IN,
(LEAD (AUD_IN,1) OVER (PARTITION BY ACCT_NO ORDER BY AUD_IN))-1 AS AUD_END
FROM XYZ
ORDER BY ACCT_NO,AUD_IN;