CREATE table #junk(id numeric(2),date datetime, batch numeric(4),nSeconds numeric(6)) INSERT INTO #junk values(1,'2019-02-08 01:25:28 AM',1, 0) INSERT INTO #junk values(2,'2019-02-08 01:25:29 AM',1, 0) INSERT INTO #junk values(3,'2019-02-08 01:25:55 AM',1, 0) INSERT INTO #junk values(4,'2019-02-09 02:28:29 AM',2, 0) INSERT INTO #junk values(5,'2019-02-09 02:50:18 AM',2, 0) INSERT INTO #junk values(6,'2019-02-09 08:59:17 PM',2, 0) INSERT INTO #junk values(7,'2019-02-09 10:25:39 PM',2, 0) INSERT INTO #junk values(8,'2019-02-12 03:05:19 AM',5, 0) -- MS SQL 2008 R2 SELECT aa.id, aa.date, aa.batch, COALESCE(DATEDIFF(ss,prevdate, AA.date),0) FROM ( SELECT aa.id, aa.date, aa.batch, (SELECT MAX(ba.date) from #junk BA where aa.batch=BA.batch and BA.date<aa.date) as prevdate FROM #junk aa ) AA -- MS SQL 2012 SELECT aa.id, aa.date, aa.batch, COALESCE(DATEDIFF(ss,prevdate, AA.date),0) FROM ( SELECT aa.id, aa.date, aa.batch, LAG(aa.date) OVER (PARTITION BY aa.batch ORDER BY aa.date) as prevdate FROM #junk aa ) AA drop table #junk>Thanks sir for help.
>CREATE CURSOR Cetin(id n(2),date t,batch n(4),nSeconds n(6)) >INSERT INTO Cetin values(1,{^2019-02-08 01:25:28 AM},1, 0) >INSERT INTO Cetin values(2,{^2019-02-08 01:25:29 AM},1, 0) >INSERT INTO Cetin values(3,{^2019-02-08 01:25:55 AM},1, 0) >INSERT INTO Cetin values(4,{^2019-02-09 02:28:29 AM},2, 0) >INSERT INTO Cetin values(5,{^2019-02-09 02:50:18 AM},2, 0) >INSERT INTO Cetin values(6,{^2019-02-09 08:59:17 PM},2, 0) >INSERT INTO Cetin values(7,{^2019-02-09 10:25:39 PM},2, 0) >INSERT INTO Cetin values(8,{^2019-02-12 03:05:19 AM},5, 0) >>