• create table dimdate (datevalue date)

    create table totalsdata (datevalue date, totalvalue int)

    insert into Dimdate

    values(getdate())

    ,(dateadd(day, 1,getdate()))

    ,(dateadd(day, 2,getdate()))

    ,(dateadd(day, 3,getdate()))

    ,(dateadd(day, 4,getdate()))

    ,(dateadd(day, 5,getdate()))

    ,(dateadd(day, 6,getdate()))

    ,(dateadd(day, 7,getdate()))

    ,(dateadd(day, 8,getdate()))

    ,(dateadd(day, 9,getdate()))

    ,(dateadd(day, 10,getdate()))

    ,(dateadd(day, 11,getdate()))

    ,(dateadd(day, 12,getdate()))

    insert into TotalsData

    values(getdate(), 1)

    ,(dateadd(day, 3, getdate()), 55)

    ,(dateadd(day, 7, getdate()), 66)

    ,(dateadd(day, 9, getdate()), 77)

    ,(dateadd(day, 11, getdate()), 88)

    SELECT datevalue,totalvalue FROM (

    SELECT ROW_NUMBER() OVER (PARTITION BY d.datevalue ORDER BY t.datevalue DESC) AS rownum,d.datevalue, COALESCE(t.totalvalue,0) totalvalue

    FROM dimdate d

    LEFT JOIN totalsdata t ON d.datevalue >= t.datevalue

    ) derived

    drop table dimdate

    drop table totalsdata