• Perhaps this?

    if exists(select 1 from tempdb.sys.objects where object_id = object_id('tempdb..#TempTable'))

    DROP TABLE #TempTable;

    CREATE TABLE #TempTable(

    [Customer] VARCHAR(50) NOT NULL,

    [Status] INT NULL,

    [CreatedDate] DATETIME NULL,

    [LastUpdateDate] DATETIME NULL,

    )

    INSERT INTO #TempTable

    SELECT 'CustA',1,'01/01/2013','01/01/2013'

    UNION

    SELECT 'CustA',2,'01/01/2013','01/05/2013'

    UNION

    SELECT 'CustA',1,'01/01/2013','01/20/2013'

    UNION

    SELECT 'CustA',3,'01/01/2013','02/01/2013'

    UNION

    SELECT 'CustB',1,'01/01/2013','01/01/2013'

    UNION

    SELECT 'CustC',2,'01/01/2013','01/05/2013'

    UNION

    SELECT 'CustB',1,'01/01/2013','01/20/2013'

    UNION

    SELECT 'CustB',3,'01/01/2013','02/01/2013';

    go

    with BaseData as (

    select

    Customer,

    Status,

    CreatedDate,

    LastUpdateDate,

    rn = row_number() over (partition by Customer order by LastUpdateDate)

    from

    #TempTable

    )

    select

    bd1.Customer,

    bd1.Status,

    NumOfDays = sum(datediff(dd,bd1.LastUpdateDate,isnull(bd2.LastUpdateDate, getdate())))

    from

    BaseData bd1

    left outer join BaseData bd2

    on (bd1.Customer = bd2.Customer and

    bd1.rn = bd2.rn - 1)

    group by

    bd1.Customer,

    bd1.Status

    order by

    bd1.Customer,

    bd1.Status;

    go

    if exists(select 1 from tempdb.sys.objects where object_id = object_id('tempdb..#TempTable'))

    DROP TABLE #TempTable;

    go