I am trying to update DaysInPeriod with the DateDiff function, based on the change in EFFECTIVESTARTDATE field. 
Here is my DLL:
DROP TABLE Reporting_Table 
CREATE TABLE Reporting_Table (
    Credit_Line_NO       Varchar(10),
    CURRENCY             VARCHAR(3),
    AMOUNT               INT,
    StartDate            DATE,
    EFFECTIVESTARTDATE   DATE,
    EXPIRY_DATE          Date,
    FREQUENCY            INT,
    CO_CODE              VARCHAR(10),
    AsOfDate             Date,
    SOURCEID_REVISED     VARCHAR(255),
    PID                  VARCHAR(5),
    DaysInPeriod         INT
)
INSERT INTO Reporting_Table(CREDIT_LINE_NO,CURRENCY,AMOUNT,STARTDATE,EFFECTIVESTARTDATE,EXPIRY_DATE,FREQUENCY,CO_CODE,ASOFDATE,SourceID_Revised,PID,DaysInPeriod)
VALUES
('1026321','USD','16875','9/30/2017','9/30/2017','9/30/2019','8','US0010001','7/31/2017','','',''),
('1026321','USD','16875','9/30/2017','12/31/2017','9/30/2019','8','US0010001','7/31/2017','','',''),
('1026321','USD','16875','9/30/2017','3/31/2018','9/30/2019','8','US0010001','7/31/2017','','',''),
('1026321','USD','16875','9/30/2017','6/30/2018','9/30/2019','8','US0010001','7/31/2017','','',''),
('1026321','USD','16875','9/30/2017','9/30/2018','9/30/2019','8','US0010001','7/31/2017','','',''),
('1026321','USD','16875','9/30/2017','12/31/2018','9/30/2019','8','US0010001','7/31/2017','','',''),
('1026321','USD','16875','9/30/2017','3/31/2019','9/30/2019','8','US0010001','7/31/2017','','',''),
('1026321','USD','16875','9/30/2017','6/30/2019','9/30/2019','8','US0010001','7/31/2017','','',''),
('1026329','USD','16875','9/30/2017','9/30/2017','9/30/2019','8','US0010001','7/31/2017','','',''),
('1026329','USD','16875','9/30/2017','12/31/2017','9/30/2019','8','US0010001','7/31/2017','','',''),
('1026329','USD','16875','9/30/2017','3/31/2018','9/30/2019','8','US0010001','7/31/2017','','','')
Select * From Reporting_Table
Select *
From Reporting_Table
I have this SQL:
with cte as 
(
select *, rn = row_number() over (partition by Credit_Line_NO,ASOFDATE order by ASOFDATE)
from Reporting_Table
)
Select *
From cte
Basically, when rn=1, DaysInPeriod = 90, and then it should increment by DateDiff(days,rn-1,rn) for every next rn. It should reset based on the change in Credit_Line_NO & ASOFDATE, so I am using:
partition by Credit_Line_NO,ASOFDATE
Here is a sample of what I want to achieve.
I am using SQL Server 2008, so I can't use the Lead/Lag functions. I put together the SQL below, but it doens't execute.
SELECT  T1.CREDIT_LINE_NO, 
        T1.CURRENCY,
        T1.AMOUNT,
        T1.STARTDATE,
        T1.EFFECTIVESTARTDATE,
        T1.EXPIRY_DATE,
        T1.FREQUENCY,
        T1.CO_CODE,
        T1.AsOfDate
        MIN(T2.EFFECTIVESTARTDATE) AS Date2, 
        DATEDIFF("D", T1.EFFECTIVESTARTDATE, MIN(T2.EFFECTIVESTARTDATE)) AS DaysDiff 
FROM    Reporting_Table T1
        LEFT JOIN Reporting_Table T2
        ON T1.CREDIT_LINE_NO = T2.CREDIT_LINE_NO
        AND T2.EFFECTIVESTARTDATE > T1.EFFECTIVESTARTDATE 
GROUP BY T1.CREDIT_LINE_NO, 
        T1.CURRENCY,
        T1.AMOUNT,
        T1.STARTDATE,
        T1.EFFECTIVESTARTDATE,
        T1.EXPIRY_DATE,
        T1.FREQUENCY,
        T1.CO_CODE,
        T1.AsOfDate
Finally, I want to run an UPDATE query, or SELECT * INTO NEW_TABLE query.

 
    