我需要处理重叠输入/输出日期,所以我将这个代码与Leadl / Lag完美配合,而不是我需要通过CustID为每个组处理这些值,因此每个CustID的第一个ddStart将在< strong> 延迟 ,最后一个ddStart在 Lead 中将为NULL,在下面的示例中,它会从另一个获取前导/滞后值CustID,我不需要。
对不起, 求助: 解决方案如下,没想到分手。
CREATE TABLE cust (CustID int, DDStart date, DDEnd date )
--DROP table cust
INSERT INTO cust VALUES
(111, '2012-01-01', '2012-01-31' ),
(222, '2014-08-01', '2014-08-31' ),
(222, '2014-09-01', '2014-09-30' ),
(222, '2014-10-01', '2014-12-31' ),
(333, '2016-08-01', '2016-08-31' )
SELECT custID, ddStart, ddEnd,
'_' [_] ,
LEAD (ddStart) OVER (PARTITION BY custID ORDER BY custID, ddStart) ddStart_lead,
LAG (ddEnd) OVER (PARTITION BY custID ORDER BY custID, ddStart) ddEnd_lag,
ROW_NUMBER() OVER(PARTITION BY CustID ORDER BY ddStart ) rn
FROM cust
答案 0 :(得分:0)
抱歉空白帖子,解决了。在我的手册中,我有一个没有被分配的例子,使用它解决了这个问题。 Tx很多