For the first question, I have used two options in the past. First, you can use the table/data source with the higher number of dates (making sure it includes all the dates in the other source) as the first table and create a left join on this source to connect other sources. The other option which is more robust and advisable is date table. You can create a date table in your primary data source (or many organizations already have one) and connect all other data sources to the date table.
A helpful link to create a date table in SQL server:
For the second question, you need to clean up the data in with of the two data sources to make them match one another. The community may be able to help you better if you are able to provide a more comprehensive list of the "Location" and "NH Office" list.