This article will show you how to create a Matrix Report in SSRS (SQL Server Reporting Services) with a practical example.
SQL Command we used for this SSRS Matrix Report in the above screenshot is:
SELECT Geo.[EnglishCountryRegionName] AS [Country] ,Geo.[StateProvinceName] AS [State] ,Geo.[City] ,Cust.FirstName +' '+ Cust.LastName AS [Full Name] ,Cust.EnglishEducation AS Education ,Cust.EnglishOccupation AS Occupation ,Cust.Gender ,SUM(Cust.YearlyIncome) AS YearlyIncome ,SUM(Fact.SalesAmount)AS SalesAmount FROM DimCustomer AS Cust INNER JOIN FactInternetSales AS Fact ON Cust.CustomerKey = Fact.CustomerKey INNER JOIN [DimGeography] AS Geo ON Cust.GeographyKey = Geo.GeographyKey GROUP BY Geo.[EnglishCountryRegionName] ,Geo.[StateProvinceName] ,Geo.[City] ,Cust.FirstName ,Cust.LastName ,Cust.EnglishEducation ,Cust.EnglishOccupation ,Cust.Gender ORDER BY [Country]
Creating Matrix without using Report Wizard in SSRS
Please refer to the Table Report to understand the creation of a basic Report. Then, drag and drop the Matrix report from the Toolbox to the Data region.
We can add the Column names to the SSRS Matrix report Grouping in three ways:
- We can Drag the Column name from Report data to the Row Grouping or Column Grouping Column.
- Drag and Drop the Column name from Report data to the Row Grouping Pane or Column Grouping Pane.
- When we click on the particular cell, it will open the context menu displaying available column names in that Dataset. We can select the required column from the list. Here we are selecting StateColumn as a Row Grouping item.
Now, we are choosing Occupation Column as a Column Grouping item.
Here, we are selecting the Sales Amount Column as a Data item.
NOTE: When you add a Column to a Data Column, the Reporting Server will automatically aggregate the data. If you want to change the aggregate functions, go to fx Expression and adjust them accordingly.
We successfully created our first SSRS Matrix report. If you observe the screenshot below, we have also done the formatting.
Please refer to the Format Fonts and Background Color of a Textbox article to understand them.
Click on the Preview button to see the report preview
Add Header Column For Column Grouping in Matrix Report
If you observe the above screenshot, we all know that Clerical, Management, Manual, etc., are the Customer Occupation. What if we don’t know or want to provide extra information to the user about each column? In these situations, we have to add a row (containing Header Details of the columns).
To add a new row to SSRS Matrix Report, select the Header column of a report and then right-click on it to open the context menu. From the menu, Please select the Insert Row option. Here we have multiple options, and their functionalities are:
- Inside Group – Above: This option inserts a new row on top of the Header column and inside the Group. Inside the Group means Header text will repeat for every row
- Inside Group – Below: This option will insert a new row below the Header column and inside the Group.
- Outside Group – Above: It inserts a new row on top of the Header column and Outside the Group. Outside the Group means Header text will be static and will not repeat for every row.
We named the Header text as Profession, as shown below
If you observe the below screenshot, we have done the background formatting.
Click on the Preview button to see the SSRS Matrix Report preview.