SELECT ol.*,f.[Date],
CASE WHEN COALESCE(tmp.Cnt,0) = 0 THEN 'Closed' ELSE 'Open' END AS OfficeStatus
FROM Office_Location ol
CROSS JOIN dbo.CalendarTable('20000101','20151231',0,0) f
LEFT JOIN (SELECT Office_ID,[Date],COUNT(EmpID) AS Cnt
FROM Emp_Attendance ea
JOIN Employee e
ON e.Emp_ID = ea.Emp_ID
GROUP BY Office_ID,[Date]
)tmp
ON tmp.Office_ID = ol.Office_ID
AND tmp.[Date] = f.[Date]
dbo.CalendarTable can be found in below link
I've consider only period from 20000101 to 20151231 so if you need bigger period please substitute required values inside the function
http://visakhm.blogspot.in/2010/02/generating-calendar-table.html
------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/