• You will only get a column in the matrix if there's a row in your dataset that contains a value for that column. So if your dataset contains e.g.:-

    Month Sales

    Jan 12

    Feb 32

    Mar 16

    ... and you set month as the grouping for your columns in the matrix you can't be surprised that you don't get a column for April. The matrix doesn't even know that April exists.

    So you need to "force" rows into the dataset for all the months. You do this in your dataset's query. A good technique for doing this is to use a Cross Join to build the dimensions of your dataset and then left join from that to a table that contains that actual data. Something like:-

    Select Month, Region, count(S.SalesID)

    From Months M

    Cross Join Regions R

    Left Join Sales S

    on M.MonthID = S.MonthID

    and R.RegionID = S.RegionID

    That ensures you always have the full set or row and column values ready for your matrix to pivot out. If there's no data for a particular combo (i.e. you made no sales In Region 1 in November) you'll hust have a null in that cell which the matrix will display as a space, but you can use an isnull to substitute any value you like into that cell.