Monday, March 2, 2015

T-SQL Query - Find simple and complex record

do you mean this?



--drop table #temp
create table #temp(Key_Column VARCHAR(50), Start_Date DATETIME, End_Date DATETIME, status VARCHAR(50))
insert into #temp (Key_Column, Start_Date, End_Date, status) VALUES
('K1','2015-03-02 00:00:00.000','2016-03-02 00:00:00.000',NULL),
('K1','2016-03-15 00:00:00.000','2015-03-02 00:00:00.000',NULL),
('K2','2015-03-02 00:00:00.000','2016-03-02 00:00:00.000',NULL),
('K2','2016-03-15 00:00:00.000','2016-04-15 00:00:00.000',NULL),
('K2','2018-03-02 00:00:00.000','2018-04-02 00:00:00.000',NULL)
;With CTE
AS
(
SELECT *,ROW_NUMBER() OVER (PARTITION BY key_Column ORDER BY Start_date,End_Date) AS Rn
FROM #Temp),CTE1
AS
(
SELECT c1.Key_Column
FROM CTE c1
INNER JOIN CTE c2
ON c2.Key_Column = c1.Key_Column
AND c2.Rn = c1.Rn + 1
AND c2.Start_Date > DATEADD(dd,90,c1.End_Date)
)
UPDATE t
SET Status = CASE WHEN c.Key_Column IS NOT NULL THEN 'Complex' ELSE 'Simple' END
FROm #temp t
LEFT JOIN CTE1 c
ON c.Key_Column = t.Key_Column
SELECT * FROM #Temp





Please Mark This As Answer if it solved your issue

Please Vote This As Helpful if it helps to solve your issue

Visakh

----------------------------

My Wiki User Page

My MSDN Page

My Personal Blog

My Facebook Page


No comments:

Post a Comment