Reporting Services: Adding extra columns / rows to a matrix

  • Comments posted to this topic are about the item Reporting Services: Adding extra columns / rows to a matrix

  • Wow Martin, This is a great article. Totals columns, 13 week averages, % change -- all of these have been a critical part of reporting that I felt matrix tables would be well suited for if one could only add extra columns. This really pushes our reporting capabilities ahead by light years!

    Mark

  • When do you think you'll have the SSAS article in a draft form?

  • Really a clever way. I've been using the addition of an extra table with similar grouping as the matrix one but then I always lost the ability to export and also on sorting capability (as is that is pretty limited in a matrix report). Thanks.

  • Another way to do this using more of the native function of the Matrix would be to create a grouping column, where one group value is tied to the Articles sold and another group value tied to the Target information.

    Group 01 is the Articles sold.

    Group 02 is the target.

    The data set would look like:

    grp Name Month #Sold

    == ==== ===== ====

    01 Franz 200801 10

    01 Franz 200803 7

    01 Franz 200804 12

    02 Franz Target -20 (Trick:note negative Target value is need to make the "math" ok when sub totalling)

    Then just set up totalling on your matrix report to provide sub totals per the group value.

    Special Notes:

    1) In order for the final total to come out correctly the Target data needs to go in as a negative number

    2) You would have to have a special format option when displaying the "target" data to not show the negative

    3) You would still need to use the techniques, described in the article, for proper sequencing and column headers and such on the final report.

    Advantages:

    - Your data set only has raw data in it, rather than mixing raw data and summary data.

    - Much Simpler T-SQl statements

    - Lets the matrix list do what it does best.

    Regards All

    Matteo

  • Hello bteague,

    I hope to have that article written within the next week.

    But I do not know how long it takes for the article to be published.

    Martin

  • Great article ...

  • Excellent. If it looks like you'll have something ready and the "posting/publishing" is delayed, can you e-mail something in the interim. 🙂

  • This is a great article, and I must apologize -- this is the first time I went to rate an article, and I meant to give it 5 stars. Unfortunately my unfamiliarity with the process led to only crediting it with one star.:blush: If the editor could change that vote I would appreciate it.:(

  • Martin,

    First of all Thank you for really good article with perfect example to show the functionality. I fully support your approch of stored functions/stored procedures to generate the result set with the calculation and just use basic functions of SSRS to display the data especially, as you wrote, while exporting report to excel.

    Again it was a very good article....Keep it on.....:)

  • Matteo (7/24/2008)


    Another way to do this using more of the native function of the Matrix would be to create a grouping column, where one group value is tied to the Articles sold and another group value tied to the Target information.

    Group 01 is the Articles sold.

    Group 02 is the target.

    The data set would look like:

    grp Name Month #Sold

    == ==== ===== ====

    01 Franz 200801 10

    01 Franz 200803 7

    01 Franz 200804 12

    02 Franz Target -20 (Trick:note negative Target value is need to make the "math" ok when sub totalling)

    ...

    Matteo

    Matteo,

    as a simplification of my approach your idea has the benefit of being easier to understand and maintain.

    It has its limitations, however:

    * When using groups you cannot decide to have a total on the first group only (in the example: on grp=01 but not on grp=02). Reporting Services will add a total column for both 01 and 02.

    * You are limited to sums (Totals). My approach is more generic (and therefore more complex) and can be used for any arithmetic operation (average, multiply sales figures by price, ...).

    Therefore it depends on the actual situation which way is the better way to go.

    Regards

    Martin

  • Hello!

    Great article. Really helpfull...

    Do you know is there is any new feature on SQL Server 2008 that would add this functionality?

    Any way, If you would be so kind to share the solution with SSAS.

    Please, send me a briefing about it, if you would not write an article!

    sergioblum@hotmail.com

    Thank you very very much!

  • Hi Sergio,

    I published the SSAS-article on SQLServerCentral a while ago. You should find it here: http://www.sqlservercentral.com/articles/Linked+Server/63867/

    [/url]

    Concerning SQL Server 2008:

    The Reporting Services 2008 has a new control called "tablix" ("table" and "matrix") which should behave much better than the matrix. However, I have not tried the example of my article within SQL Server 2008 yet.

    Kind regards,

    Martin

  • Great article !

    But how I would handle if I need to calculate subtotals for the noncalulated fields? For example if you would need to drill down to Customer Type for every month? Then if I add a subtotal, calculated fields will get duplicated.

  • Hi Martin,

    Thanks for your input. this is really helpful. I am stuck with an issue and unable to find any information. Hope you can provide me with some suggestions.

    My issues is

    Data Source :SSAS

    Report Type :Matrix (Drill Down)

    I have a report

    Year :2010

    JanFebMarchAprilAvg(last2 months)

    Account

    Sub Acc11212(2-1)=1

    Sub Acc221110

    Account2

    Sub Acc233110

    Sub Acc14413

    I am able to create the report create totals , sub totals etc, my issue is the population or calculation of the last column “Avg” last column depends on the parameter (EndMonth), it is always EndDatevalue –EndDate-1.value.

    Is there a way that I can get to that column

    I tried to first display the last 2 columns but could not get to that. I tried

    =IIF((Format(CDate(Fields!MonthFirst.Value), "yyyyMM"))=Parameters!ToDimDateYearMonth.Value,0,IIF(IsNothing((Fields!Orders.Value)), 0,(Fields!Orders.Value)))

    Is there a way to get the last column.

    Any suggestions are highly appreciated.

    Thanks

    Devi

Viewing 15 posts - 1 through 15 (of 17 total)

You must be logged in to reply to this topic. Login to reply