• You can do this sort of. The problem comes from the fact that you can (as far as I can tell) only look at the previous record within a dataset.

    Using the data below:

    SELECT 1 AS id ,

    '2013-01-24 08:30' AS Time ,

    '2013-01-24 08:32' AS Time_Stamp ,

    'Available' AS State

    UNION

    SELECT 2 ,

    '2013-01-24 08:30' ,

    '2013-01-24 08:34' ,

    'Busy' AS State

    UNION

    SELECT 3 ,

    '2013-01-24 08:30' ,

    '2013-01-24 08:38' ,

    'Idle' AS State

    UNION

    SELECT 4 ,

    '2013-01-24 08:30' ,

    '2013-01-24 08:40' ,

    'Signed out' AS State

    To resolve this, create a matrix on the report as normal and sort in descending order (Signed out time comes first). Create an additional column with the following expression:

    =iif(isdate(previous(max(Fields!Time_Stamp.Value))),DateDiff("n",max(Fields!Time_Stamp.Value),previous(max(Fields!Time_Stamp.Value))),0)

    Results should be

    idTime Time_StampStateDiffState

    424/01/2013 08:3024/01/2013 08:400Signed out

    324/01/2013 08:3024/01/2013 08:382Idle

    224/01/2013 08:3024/01/2013 08:344Busy

    124/01/2013 08:3024/01/2013 08:322Available