Thanks
I have added PID to the data below The PID is unique ID per customer so on the below i want to see
PID = 22
calldatetime 25/02/2012
NextCallDateTime = 28/02/2013
numberofdays = 3
--===== If the test table already exists, drop it
IF OBJECT_ID('TempDB..HistoryTEST','U') IS NOT NULL
DROP TABLE HistoryTEST
--===== Create the test table with
CREATE TABLE HistoryTEST
(
[HistoryTESTID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[SystemID] [tinyint] NULL,
[PID] [int] NULL,
[Name] [varchar](35) NOT NULL,
[Source] [varchar](32) NULL,
[SourceField] [varchar](32) NULL,
[SourceID] [varchar](32) NULL,
[CallDateTime] [datetime] NULL,
[Num] [varchar](15) NULL,
[CallData] [varchar](240) NULL,
[ANI] [varchar](15) NULL,
[RC] [varchar](10) NULL,
[ID] [int] NULL,
)
--===== Insert the test data into the test table
INSERT INTO HistoryTEST
(ID, Name, CallDateTime, RC, Num, PID)
SELECT '26241','Carr_CHS_20120227','Feb 25 2012 3:07PM','Called','01912','22' UNION ALL
SELECT '28252','Carr_CHS_20120227','Feb 28 2012 4:07PM','PCO','01912','22' UNION ALL
SELECT '26263','Carr_CHS_20120227','Feb 27 2012 2:10PM','Called','01443','23' UNION ALL
SELECT '39395','Carr_CMM_20120227','Feb 27 2012 2:14PM','Called','01513','24' UNION ALL
SELECT '27237','Carr_CHS_20120227','Feb 27 2012 4:14PM','Called','01519','25' UNION ALL
SELECT '27254','Carr_CHS_20120227','Feb 27 2012 4:16PM','Called','01270','26' UNION ALL
SELECT '27440','Carr_CHS_20120227','Feb 27 2012 4:34PM','Called','01938','27' UNION ALL
SELECT '40522','Carr_CMM_20120227','Feb 27 2012 4:48PM','Called','01924','28' UNION ALL
SELECT '40528','Carr_CMM_20120227','Feb 27 2012 4:48PM','Called','01875','29' UNION ALL
SELECT '40595','Carr_CMM_20120227','Feb 27 2012 4:58PM','Called','34849','30' UNION ALL
SELECT '27712','Carr_CHS_20120227','Feb 27 2012 5:03PM','Called','30476','31' UNION ALL
SELECT '40654','Carr_CMM_20120227','Feb 27 2012 5:08PM','Called','82228','32' UNION ALL
SELECT '40664','Carr_CMM_20120227','Feb 27 2012 5:09PM','Called','13048','33' UNION ALL
SELECT '40677','Carr_CMM_20120227','Feb 27 2012 5:11PM','Called','81410','34' UNION ALL
SELECT '40740','Carr_CMM_20120227','Feb 27 2012 5:19PM','Called','52379','35' UNION ALL
SELECT '28262','Carr_CHS_20120227','Feb 27 2012 6:17PM','Called','01612','36' UNION ALL
SELECT '28265','Carr_CHS_20120227','Mar 2 2012 6:17PM','Other','01612' ,'36'UNION ALL
SELECT '28263','Carr_CHS_20120227','Feb 27 2012 6:17PM','Called','0148227','37' UNION ALL
SELECT '41207','Carr_CMM_20120227','Feb 27 2012 6:47PM','Called','02891209','38' UNION ALL
SELECT '28654','Carr_CHS_20120227','Feb 27 2012 7:00PM','Called','014240','39' UNION ALL
SELECT '28654','Carr_CHS_20120227','Feb 28 2012 7:00PM','KKT','014240','40' UNION ALL
SELECT '41393','Carr_CMM_20120227','Feb 27 2012 7:07PM','Called','01642198','41' UNION ALL
SELECT '41345','Carr_CMM_20120227','Mar 4 2012 7:07PM','NIG','01642198' ,'41'UNION ALL
SELECT '30313','Carr_CHS_20120227','Feb 28 2012 12:36PM','Called','01142478','42'
SELECT HistoryTESTID, SystemID, PID, Name, Source, SourceField, SourceID, CallDateTime, Num, CallData, ANI, RC, ID
FROM HistoryTEST
ORDER BY Name, CallDateTime
;
with CTE as
(
SELECT ID, PID,Name, CallDateTime, Num, RC, row_number() over(PARTITION BY [Name] order by calldatetime ) as rn
FROM HistoryTEST
WHERE (CallDateTime > CONVERT(DATETIME, '2012-02-27 16:48:00.000', 102)) AND (rc = 'Called')
)
SELECT firstcall.ID
, firstcall.PID
, firstcall.Name
, firstcall.CallDateTime
, firstcall.Num
, firstcall.RC
, nextcall.CallDateTime AS NextCallDateTime
, datediff(d,firstcall.CallDateTime,nextcall.CallDateTime) as numberofdays
FROM
cte AS firstcall INNER JOIN cte AS nextcall
ON firstcall.Name = nextcall.Name
WHERE (firstcall.rn = 1)
AND (nextcall.rn = 2);