Zoals vermeld in de opmerkingen, kunt u geen tijdstempels aftrekken met -
exploitant. Gebruik DATEDIFF
functie in plaats daarvan. Gebruik OUTER APPLY
om het verschil tussen de huidige rij en de tijdstempels van de volgende rij te krijgen. .
select t2._number,t2._timestamp,
datediff(microsecond,t2._timestamp,t1._timestamp) as diff
from dbo.tbl t2
outer apply (select t1._timestamp
from dbo.tcp t1
where t1._number = t2._number + 1) t1
Bewerken:om update
een kolom met de naam diff volgens de opmerking van de OP,
with cte as (
select t2._number,t2._timestamp, t2.diff,
datediff(microsecond,t2._timestamp,t1._timestamp) as diff_col
from t t2
outer apply (select t1._timestamp
from t t1
where t1._number = t2._number + 1) t1
)
update cte set diff=diff_col;