查询以基于仅提供日期列计算结束日期

时间:2018-07-11 12:00:31

标签: sql oracle

我已达到根据日期列中提供的计算结束日期的要求。让我举例说明。我有两个专栏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;

0 个答案:

没有答案