How to create a view with added rows for missing dates?
I wouldn't organize your "helper table" that way.  I would keep only {Region, Salesman, StartDate}.  To create a view of intervals, join that table to itself to create data ranges where a.StartDate &lt; b.StartDate.  Use an outer join, so that NULL represents an EndDate of "now", which you can coalesce with the current date or other, as appropriate.  To represent departures (not reassignments) use an artificial region named CiaoBaby or some such.  

Now your maintenance chore is much easier; you need only capture staffing changes.  The table is oodles smaller (over time, 100 or 1000 oodles).  And you automatically have the built-in assumption that, absent contrary information, a salesman remains attached today to the same one as last month.