• This solution uses a numbers table in [master].

    selectdt.HotelId

    ,dt.RoomTypeId

    ,BeginRange = dateadd(dd, min(dt.N), '20000101')

    ,EndRange = dateadd(dd, max(dt.N), '20000101')

    from

    (

    selectdistinct

    rd.HotelId

    ,rd.RoomTypeId

    ,n.N

    ,grp = n.N - dense_rank() over(order by rd.HotelId, rd.RoomTypeId, n.N)

    from #RoomDates as rd

    join [master].dbo.Nums as n

    on n.N between datediff(dd, '20000101', rd.StartDate) and datediff(dd, '20000101', rd.EndDate)

    ) as dt

    group by dt.HotelId, dt.RoomTypeId, dt.grp

    order by dt.HotelId, dt.RoomTypeId, min(dt.N);

    └> bt



    Forum Etiquette: How to post data/code on a forum to get the best help[/url]