2016-10-02 2 views
0

데이터입니다 이전 값을 변경그룹 및 순서는 다음 여기에

Event           Start   End.    Tag 
10PIC700422.PV 10-PSV-700073A 10-PSV-700073B 9/9/16 10:44 9/9/16 10:49  Big 
10PIC700422.PV 10-PSV-700073A 10-PSV-700073B 9/9/16 10:50 9/9/16 10:51  Small 
11PIC41010.PV 11-PSV-401002A 11-PSV-401002B  4/4/16 12:51 4/4/16 13:58  Big 
11PIC41010.PV 11-PSV-401002A 11-PSV-401002B  4/4/16 14:04 4/4/16 14:29  Small 
11PIC41010.PV 11-PSV-401002W 11-PSV-401002D  4/4/16 16:04 4/4/16 16:45  Big 

아래 결과를 얻을 방법 : 내가 시작하여 이벤트 및 주문에 의해 그룹에해야하고, 작은 큰 Afer 즉 될 때마다 작은에 큰 변경 : 사전에

Event           Start   End.    Tag 
10PIC700422.PV 10-PSV-700073A 10-PSV-700073B 9/9/16 10:44 9/9/16 10:49  Small 
10PIC700422.PV 10-PSV-700073A 10-PSV-700073B 9/9/16 10:50 9/9/16 10:51  Small 
11PIC41010.PV 11-PSV-401002A 11-PSV-401002B  4/4/16 12:51 4/4/16 13:58  Small 
11PIC41010.PV 11-PSV-401002A 11-PSV-401002B  4/4/16 14:04 4/4/16 14:29  Small 
11PIC41010.PV 11-PSV-401002W 11-PSV-401002D  4/4/16 16:04 4/4/16 16:45  Big 

감사합니다,

+0

하지 동일한 결과를 얻을 수 일 : 사건 때 BY [이벤트] ORDER BY LAG (a.tag) OVER (PARTITION '작고'LAG (a.tag) 이상 (PARTITION BY [이벤트] ORDER BY a.StartDateTime) = '큰'및 LEAD (a.tag) 이상 (PARTITION BY [이벤트] ORDER BY a.StartDateTime)) = '작다'else tag end – Tony

답변

0
-- A Demonstrative Table Variabe 
Declare @YourTable table ([Event] varchar(100),[Start] DateTime,[End] DateTime, [Tag] varchar(25)) 
Insert Into @YourTable values 
('10PIC700422.PV 10-PSV-700073A 10-PSV-700073B','9/9/16 10:44','9/9/16 10:49','Big'), 
('10PIC700422.PV 10-PSV-700073A 10-PSV-700073B','9/9/16 10:50','9/9/16 10:51','Small'), 
('11PIC41010.PV 11-PSV-401002A 11-PSV-401002B','4/4/16 12:51','4/4/16 13:58','Big'), 
('11PIC41010.PV 11-PSV-401002A 11-PSV-401002B','4/4/16 14:04','4/4/16 14:29','Small'), 
('11PIC41010.PV 11-PSV-401002W 11-PSV-401002D','4/4/16 16:04','4/4/16 16:45','Big') 

-- The Actual Query 
Select [Event] 
     ,[Start] 
     ,[End] 
     ,[Tag] = case when Tag='Big' and 'Small' = Lead(Tag,1,Tag) over (Partition By Event Order By Start) then 'Small' else tag end 
From @YourTable 

될 수 S 우연의 일치는, 그러나 당신은 지연과 납이 경우 도움이 될 수있는 경우 확인 CASE없이

,[Tag] = Lead(Tag,1,Tag) over (Partition By Event Order By Start) 
+0

고마워요 존, 내가 확인해 보겠다. – Tony