2017-06-20 9 views
0

オーバーラップイン/アウトの日付を処理する必要があるため、このコードをLeadl/Lagで処理する必要があります。お客様IDは、各お客様IDのためので最初ddStartはラグにNULLを持つことになり、それは私にはない、他のお客様ID、から/ラグ値を導く取るの下に最終ddStartは、この例では、鉛にNULLを持つことになります必要。TSQLのリード/ラグ各グループのNULLに設定する方法

申し訳ありません。この問題は解決しませんでした。

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

大変申し訳ございません。私のマニュアルでは、私はこの問題を解決して使用して、分割されていない例を持っています。多くはすべて

関連する問題