In above tables associated by ID and created flags in each table to identify the table and number of months. when we create master calendar using above 2 common dates which come from table 1 and table 2, the Table 1 showing more than 12 months data.
1. the first problem is when we create master calendar using Table 2 which has more than 12months , when i click on Table1 flag, the months were showing more than 12months data(Table 1 should has only 12months respected dates)
That such table is in some degree asynchron which results in NULL for some fields in many records is often not a problem because these NULL's won't be stored - it only means that there are no values available.
Without any record-id's which are only very seldom useful within a final datamodel (during in evaluation/design process they may helpful to find any differences) the max. pointer for the data-table shouldn't significantly increase even if there are much more records included and therefore the run-times shouldn't be much longer especially not if not only the loadings are compared else also the efforts to calculate the datamodel.
Quite often there are also real benefits while the loading because no complex key is needed (you have at least two fields which needs to be combined) and you could apply simple dimension-tables and not any complex constructs mostly done with link-tables between the fact-tables on which the dimensions are linked.
Therefore I suggest not to discard the simplest solution too fast. I use this concept very often and not only because of it's easiness else because of the good performance in script and UI.