@Badaze, non sono riuscito a convertire la tua "query" per farla funzionare su ms sql 2005 (abbiamo questo ...)

ho cercato una via diversa e mi sembra di averla trovata,
Codice PHP:
WITH t1 AS
(
  
select BatchLocalTimeColStateCurrent,
  
ROW_NUMBER() OVER (ORDER BY LocalTimeCol) AS myRank
  from tabella
),
t4 as
(
  
select 
    Batch
,
    
LocalTimeCol,
    
StateCurrent,
    
myRank
  from
  
(
    
select t1.Batcht1.LocalTimeColt1.StateCurrentt1.myRank,
    CASE 
WHEN t2.StateCurrent t1.StateCurrent THEN 0 ELSE 1 END as TakeItX
    FROM t1
    INNER JOIN t1 
as t2 ON t1.myRank t2.myRank 1
    UNION
    select TOP 1 Batch
LocalTimeColStateCurrent11
    from t1
  
t3
  where TakeItX 
0
)
select 
  t4
.Batch,
  
t4.LocalTimeCol as Dalle,
  
min(t5.LocalTimeCol) as Alle,
  
t4.StateCurrent
from t4
inner join t4 
as t5 ON t4.Batch=t5.Batch and t5.myRank t4.myRank
group by t4
.Batcht4.LocalTimeColt4.StateCurrent 
se riesco allego anche l'mmagine del risultato