Reg: Implementing a formula in Matrix Reports

Hi Everyone,
i have a simple scenario, i have a matrix report with ROWS => EMPNO, COLS => DEPTNO, CELLS => SAL
Using Matrix report wizard i am able to do this very easily... now i implemented summaries like {AVG,MIN,MAX,SUM } DEPTNO wise using default summary options provided.
Now i want sum of squares of salaries as one of the summary along with {AVG,MIN,MAX,SUM}
What is the method to access the cell information in order to use it in formula column.
Regards,
Sreekanth

Hi,
There are three salaries in a column per deptno, suppose for deptno 10 there are three matching values {10,20,30} now i want them to be (10 square + 20 square + 30 square) in a Formula column CF_1 and then return it into a field which would be placed along with summaries like AVG,MIN,MAX.
To do the above my formula column code would simple be return(:sal * :sal) in the same group which contains 'sal' but i dont know how many would i get at runtime to sum them up and i tried without summing by giving just return(:sal*:sal) and connected it to a field along with summaries AVG,MIN,MAX and i am getting error:
"REP-1213: Field 'F_1' references column 'CF_1' at a frequency below its group"
Hope i am clear.
Thnaks and Regards,
Sreekanth.J.U.P

Similar Messages

  • Formula Column in Matrix Report (Running Balance)

    Hi all. I hope somebody can help me.
    I am working on a matrix report using multi-query data models. The report has 2 groups in the horizontal axis and 3 groups in the vertical axis. The intersection is not just a single row but may consist of multiple rows.
    My problem is this. I want to create a column in the intersection which is obtained by using a column value from the lowest group in the vertical axis and a summary column obtained from the rows of the intersection.
    Here's what my report looks like:
    2002 (accross)
    2002(down) january february (accross)
    January (down) payments balance payments balance
    loan #1 10,000 500 9,000 200 8,800
    500
    loan #2 5,000 100 4,900 200 4,700
    February
    loan #3 3,500 0 3,500 50 3,450
    loan #4 4,200 0 4,200 0 4,200
    As you can see, the loans are grouped by month and year. And the payments are grouped for the month and year too.
    The data model is :
    For Query 1 (Vertical Axis),
    1st group - Loan Yr
    2nd group - Loan Mo
    3rd group - Loan # and amount
    For Query 2 (Horizontal Axis)
    1st group - Payment Yr
    2nd group - Payment Mo
    Intersection Group - Payment Amount
    My problem actually is how to compute for the running balance of the loan for each month in the horizontal axis. Ive already created a cross product summary to get the running total of the payments made for the month. I tried creating a formula column to for the running balance by subtracting it from the loan amount but i get the error "incompatible frequency"
    I hope i have described my problem well and thanks for the help

    The problem is that you're trying to reference dimension columns(loan Amount) in the calculation of matrix cell values. You can only reference other matrix cell values or cross product columns (summary, formula, placeholders) when calculating matrix cell values. Try moving the (loan Amount) column down to the matrix cell - something like:
    For Query 1 (Vertical Axis),
    1st group - G_LoanYear(LoanYr)
    2nd group - G_LoanMonth(LoanMo)
    3rd group - G_LoanNumber(Loan#)
    For Query 2 (Horizontal Axis)
    1st group - G_PaymentYear(PaymentYr)
    2nd group - G_PaymentMonth(PaymentMo)
    Intersecion /Detail Group - G_Details(PaymentAmount, LoanAmount)
    Then create the following Matrix summary columns:
    A running summary - CS_Payments:
    - Product Order: G_LoanYear G_LoanMonth G_LoanNumber G_PaymentYear G_PaymentMonth
    - Source: PaymentAmount
    - Function: Sum
    - Reset At: G_LoanNumber
    The total amount per loan - CS_TotalPayment:
    - Product Order: G_LoanYear G_LoanMonth G_LoanNumber
    - Source: LoanAmount
    - Function: First
    - Reset At: G_LoanNumber
    The value of the loan after each payment - CF_Countdown:
    - Product Order: G_LoanYear G_LoanMonth G_LoanNumber G_PaymentYear G_PaymentMonth
    - PL/SQL Formula:
    function CF_CountdownFormula return Number is
    begin
    return(:CS_TotalPayment - :CS_Payments);
    end;
    You should then be able to display "CF_Payments" and "CF_Countdown" in the matrix cell to show how much has been paid and how much is still owed.
    You can still have another "loan amount" as a dimension column - you just don't need to use it when calculating the values in the cell.

  • Formula Columnn in Matrix Report (Running Balance)

    Hi all. I hope somebody can help me.
    I am working on a matrix report using multi-query data models. The report has 2 groups in the horizontal axis and 3 groups in the vertical axis. The intersection is not just a single row but may consist of multiple rows.
    My problem is this. I want to create a column in the intersection which is obtained by using a column value from the lowest group in the vertical axis and a summary column obtained from the rows of the intersection.
    Here's what my report looks like:
                        2002 (accross)                         2003
                        januar                    february (accross
                        payments      balance          paymenst     balance
    2002 (down)
    Januar (down)          
         Loan#1 10,000 500          9000          200          8800          
                   500
         Loan#2     5000     100          4900          200          4700
    February
         Loan#3     3500     0          3500          50          3450
         Loan#4     4200     0          4200          0          4200
    As you can see, the loans are grouped by month and year. And the payments are grouped for the month and year too.
    The data model is :
    For Query 1 (Vertical Axis),
    1st group - Loan Yr
    2nd group - Loan Mo
    3rd group - Loan # and amount
    For Query 2 (Horizontal Axis)
    1st group - Payment Yr
    2nd group - Payment Mo
    Intersecion /Detail Group - Payment Amount
    My problem actually is how to compute for the running balance of the loan for each month in the horizontal axis. Ive already created a cross product summary to get the running total of the payments made for the month. I tried creating a formula column to for the running balance by subtracting it from the loan amount but i get the error "incompatible frequency"
    I hope i have described my problem well and thanks for the help

    The problem is that you're trying to reference dimension columns(loan Amount) in the calculation of matrix cell values. You can only reference other matrix cell values or cross product columns (summary, formula, placeholders) when calculating matrix cell values. Try moving the (loan Amount) column down to the matrix cell - something like:
    For Query 1 (Vertical Axis),
    1st group - G_LoanYear(LoanYr)
    2nd group - G_LoanMonth(LoanMo)
    3rd group - G_LoanNumber(Loan#)
    For Query 2 (Horizontal Axis)
    1st group - G_PaymentYear(PaymentYr)
    2nd group - G_PaymentMonth(PaymentMo)
    Intersecion /Detail Group - G_Details(PaymentAmount, LoanAmount)
    Then create the following Matrix summary columns:
    A running summary - CS_Payments:
    - Product Order: G_LoanYear G_LoanMonth G_LoanNumber G_PaymentYear G_PaymentMonth
    - Source: PaymentAmount
    - Function: Sum
    - Reset At: G_LoanNumber
    The total amount per loan - CS_TotalPayment:
    - Product Order: G_LoanYear G_LoanMonth G_LoanNumber
    - Source: LoanAmount
    - Function: First
    - Reset At: G_LoanNumber
    The value of the loan after each payment - CF_Countdown:
    - Product Order: G_LoanYear G_LoanMonth G_LoanNumber G_PaymentYear G_PaymentMonth
    - PL/SQL Formula:
    function CF_CountdownFormula return Number is
    begin
    return(:CS_TotalPayment - :CS_Payments);
    end;
    You should then be able to display "CF_Payments" and "CF_Countdown" in the matrix cell to show how much has been paid and how much is still owed.
    You can still have another "loan amount" as a dimension column - you just don't need to use it when calculating the values in the cell.

  • Howto use formula columns in matrix reports

    Hello
    How can i use a formula column in matrix report whose function would be
    Formula_Column_Result=A-B where A=Cell A
    B =Cell B
    Regards
    Fahad

    Hii guys
    I solved my problem on my own.
    i wrote
    SELECT * FROM EMP WHERE EMP.DEPTNO=P_DEPT_NO
    and it worked.
    Thanks guys..i luv this forum
    Regards
    Fahad Hameed

  • Doubt Reg How to implement MDX formula in ASO Cube

    We are using Essbase 7x for implementing ASO application, We are struck in implementing MDX formuls in Accounts dimension members. As per the requirement
    We have to calculate
    Cost Per kilo[Total shipment Cost]/[Billed Weight]
    Fuel Surcharge cost per kilo[Fuel Surcharge cost]/[Billed weight]
    Need to implement these formula's for the mentioned Accounts members. As we are new to this concept plz let me know if
    we wrote these in MDX editor and how to link these to the particulr mrmber in the dimension.please help me out in implementing these formula's

    Hi,
    1. For ASO cubes also, you can have forumulas on your cube's outline individual members.
    2. If the dimension is "accounts" you can write MDX forumulas on the members of the accounts dimension
    3. The two members 'cost per kilo' and 'fuel surcharge cost per kilo' and their respective forumulas are Total shipment Cost/Billed Weight and Fuel Surcharge cost/Billed weight.
    4. If you have the members like Total shipment Cost,Billed Weight and Fuel Surcharge cost, create 2 account members for which you need to write formulas , then go to 'formula' tab of these members and write a simple division formula.For ASO cubes, no need to end them with semi colon.
    One can use MDX editor to write down queries and extract data too, i.e queries . More of it can be found in the DBAG .
    Sandeep Reddy Enti
    HCC
    http://hyperionconsultancy.com/

  • Matrix reporting

    Hi All,
        I want to implement matrix reporting wherein a position is reporting to more than one position. In this case, a position x will have relationship A002 with 2 different positions at the same time instance.
        I could manage this by changing the time constraint of  A002 relationship  from 2 to 3 to allow overlaps. Is there any other way of acheiving the same without changing the time constraint?
    Regards,
    Santosh

    Hi Vincent,
    I wouldn't expect just selecting on two hierarchies in one EVDRE to result in that much performance degradation but I suppose it might be forcing the shared query engine back into pure MDX mode. Interesting. Maybe someone who really knows the guts of that code will jump in to comment.
    But to answer your question, the formula I suggested earlier would be something like the following, assuming that your top node in the profit center hierarchy is ALL_PROFITCTR and the profit center you want to exclude is PC_X, and your dimension is called PROFITCTR:
    [PROFITCTR].[ALL_PROFITCTR] - [PROFITCTR].[PC_X]
    Note that you can reference hierarchy node members in formulas. What you cannot do is reference another formula member in a formula. So, hopefully this addresses the problem of trying to cram a huge number of elements into a formula (which is also really really slow).
    Good luck!
    Ethan

  • How to create a matrix report on Apex 4.1

    Hi all.
    I need to create a report similar to this one:
    Jan Feb Mar .....
    Product Category
    Category One 999 999 999
    Category Two 999 999 999
    On a reporting tool like Oracle Reports, this is call a matrix report which can be easily created: just one simple query , select a matrix report type, compute summary values for row /column and grand total, and that is.
    How would one implement this on Apex 4.1???
    Have a couple of ideas:
    - Populate temporary table with columns corresponding to month.
    - Create a procedure that return a collection and use that as a source for report.
    - Etc.
    What other options do i have ...?
    Thanks in advance ...!

    Hi all,
    I did create a matrix report using the pivot function and some interesting settings in APEX. So far it is only does display data. I did not find a way yet(?) to alter the data in the same matrix.
    The data is based on a simple set of tables about planning. The end result does look something like the matrix below. Note: the dashes are just there to make the matrix look like a matrix on this forum.
    Resource 13-08 20-08 27-08 03-09 10-09 17-09 24-09
    Angelo-----25-----22-----12-----10------------------------
    John---------8-----22-----36-----22------------------------
    Marit-----------------5-----40-----36-----24-----12-----10
    The resources (Angelo, John and Marit) are being registered in the following table:
    CREATE TABLE EVP_RESOURCES
    RSS_ID NUMBER(10,0) NOT NULL,
    NAME VARCHAR2(25 BYTE) NOT NULL
    The date periods (13-08 till 24-09) are being registered in the next table:
    CREATE TABLE EVP_DATA_POINTS
    DPT_ID NUMBER(10,0) NOT NULL,
    DATA_POINT_DATE DATE NOT NULL,
    V_DATA_POINT_DATE_FORMATED VARCHAR2(75 BYTE) GENERATED ALWAYS AS (TO_CHAR("DATA_POINT_DATE",'dd-mm')) VIRTUAL VISIBLE
    The virtual column (v_data_point_date_formated) is not needed. You can use this virtual column or format the column in multiple places.
    The available units are being registered in the intersection table below:
    CREATE TABLE EVP_RESOURCE_PLANNING
    RPG_ID NUMBER(10,0) NOT NULL,
    DPT_ID NUMBER(10,0) NOT NULL,
    RSS_ID NUMBER(10,0) NOT NULL,
    UNITS NUMBER(10,0)
    The data is being displayed in APEX in a report region of type "SQL Query (PL/SQL function body returning SQL query)". And the following option has to be switched on "Use Generic Column Names (parse query at runtime only)".
    This does give a restriction on the number of columns which can be used. You can however change the number of columns in the field "Maximum number of generic report columns:" to a high number. So in most cases this is no issue at all.
    In the Region Source I did put the following code:
    begin
    return 'select *
    from ( select rss.name "Resource"
    , v_data_point_date_formated
    , rpg.units
    from evp_resources rss
    , evp_data_points dpt
    , evp_resource_planning rpg
    where rpg.dpt_id = dpt.dpt_id
    and rpg.rss_id = rss.rss_id
    pivot (sum(units) for v_data_point_date_formated in (' ||
    evp_pkg_dpm.f_dynamic_pivot_in ||
    order by 1';
    end;
    The function evp_pkg_dpm.f_dynamic_pivot_in does return a string which is based on the number of rows in the table evp_data_points. In my case this string is: '13-08' as "13-08",'20-08' as "20-08",'27-08' as "27-08",'03-09' as "03-09",'10-09' as "10-09",'17-09' as "17-09",'24-09' as "24-09". If you ommit the 'as "..."' you do get quotes in your headings.
    Enjoy and regards,
    Jurgen
    PS: let me know if something is missing or not clear!
    Edited by: user553427 on Aug 17, 2012 5:46 AM (Query has been made more simple and I build up the header differently)

  • Matrix Report

    Hi,
    I need to create a matrix report like
    for example
    item as row and average selling price and average cost price as columns. But the average prices are Year wise like for 1999,2000,2001 etc. And the years vary depending on the parameters passed to the report.
         Average sell price     Average cost price     
    Item Name     1999     2000     2001     2002     1999     2000     2001     2002     
    Item1     100     121     122     123     150     175     176     180     
    How can I generate the year columns twice in the report. Item name ,prices and year are from base table. But the range of years is passed as parameter.
    Pls help in this regard.
    Regards,
    Chandra
    ([email protected])

    Hi,
    Design a matrix report with Item as rows and year as column. You do not need to have year coulnm twice in the report. Create two additions formula coulmn for "average selling price" and "average cost price". These two column values shall be computed for every matix crosssection. Chosse these two columns as the matrix cell columns. You can use range of years passed parameter in query itself to limit the data.
    Hope this helps!
    Thanks,
    Rohit

  • REP-1510 error in matrix report

    Hi,
    In my matrix report,I need to calculate a column based on the formula columns in other matirx groups.I know the reason for this error.(Formula column in one group should be based on the values in the same group).
    But I dnt know how to arrive at the solution without getting data from different groups.
    Please suggest me any solution.
    Thanks.

    What do you mean by "calculate a column based on formula columns in other matrix groups"? Do you want to sum them up? Do the columns have a 1 to 1 ratio with their rows? Can you try to describe your data model better. My hands are tied without knowing the bigger picture.

  • Product Order for Matrix Reports [Certification Question]

    [ My Situation ]
    I'm having difficulty understanding the use of a property: a cell's Product Order property, used in Matrix reports by the main cells. Basically, I can't figure out what it does.
    [ What I Think a Matrix Report Is ]
    I understand the matrix report concept like so:
    A matrix report consists of 3 basic components: A category Row, a category Column, and Cells.
    The Row is the result of a query such as "SELECT DISTINCT dept_no FROM emp".
    The Column is like the Row such as "SELECT DISTINCT gender FROM emp".
    A Cell is a summary that coresponds to the queries that formed the Row and the Column, such as:
    SELECT AVG(salary)
    FROM emp
    GROUP BY dept_no, gender
    HAVING dept_no = 10 AND gender = "Female";
    The example above would produce a report where you could see whether males and females tended to have different salaries for various departments.
    [ I Know How the Data Model Works ]
    I understand the Data Model for a matrix report, where the summary fields go, etc.
    [ What I Think Product Order Does ]
    I don't understand what Product Order does for the Cells of a matrix report. It's a list of combinations of the groups in the matrix group from the Data Model. I think it translates to the order of the columns in a query's ORDER BY clause.
    If I reverse the order in which the groups appear in Product Order, I get different results. If my understanding of a matrix report and the Product Order property is correct, the order shouldn't matter.
    What am I misunderstanding?
    Thanks in advance for your help.

    from the online help:
    Description The Product Order property is the order in which
    groups are evaluated in the cross product for a summary.
    Product Order also defines the frequency of a summary, formula,
    or placeholder in a cross product group. That is, the summary,
    formula, or placeholder has one value for each combination of
    values of the groups in its Product Order. Product Order is
    used only for columns owned by cross-product groups. Because a
    cross product relates multiple groups, the groups in the cross
    product could be evaluated in any one of many different orders.
    Therefore, when creating a summary for a cross product, you must
    use Product Order to specify for Report Builder which group
    should be evaluated first, which second, and so on. You must
    also use Product Order to specify the frequency of a summary,
    formula, or placeholder within the cross product.
    Values A valid group combination.
    Applies to summary, formula, and placeholder columns
    Required/Optional required, if the column is a summary or
    formula column belonging to a cross product group.
    regards,
    the oracle reports team --pw                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • How let Empty (NULL) cells in Matrix Report to show a 0 value

    I am working on a Matrix report in Oracle 9i environment. The report involves lots of grouping and calculations. Everything works fine, except for the Empty (NULL) cells. If a group did not get a concrete
    Returned value (NULL), the cell would be empty. The data layout is as following:
    District_Name
    Total      Failed      %Failed
    10 5 %50
    For some District, all 3 cells are empty, (with NULL values returned, I guess). As a result, all 3 cell for that District show nothing. End users required all cells with a meaningful value (e.g. 0). At same time they want all the value in a grid style (outlined). With null values, all 3 cell merged into one empty "big" cell".
    Any friends can help?
    I would like to express my appreciation here.
    AChen

    Without seeing your query, sounds like you either need:
    a) an outer join
    b) an NVL function
    If you are pulling data from multiple tables, and you are doing direct joins, and data from one table is not present in another, an outer join would get the other data.
    You should also use NVL if you need a 0. If a field is not populated, but you want to default it to zero, use the NVL function.
    If all else fails, you could make the fields formula fields. In the formula you could put this pseudocode:
    IF :cf_cell1 is null
    then return 0;
    else return :cf_cell1;
    end if;Just an idea - if none of those suffice, post your query and maybe we can help.
    Good luck!

  • Group total in matrix report

    hi
    i have a matrix report with 2 level groups above it. now i need to sum group 2 cloumn values for every row on the basis of level 1 group.
    For example, I have Top level group like TUBEWELL TYPE ( values are DEISEL and ELECTRIC) and below it at lower level is OWNER (with values like PRIVATE, GOVT) repeating both for DEISEL and ELECTRIC.
    Now I need to sum every row i.e Private and Govt for Diesel and Private and Govt for Electric (two sums in one row).
    Wizard provides complete row total but not group total.
    So ur help required guys!!
    nadeem ameer
    [email protected]

    Hi..
    am not providing you the exact answer.
    But you can refer to the PRODUCT ORDER PROPERTY in the reports help or on the website.
    Basically, all you need to do is manipulate the product order property, reset at or may be even compute at properties in the summary/ formula column of your matrix report.
    Swati

  • Xml matrix report not expending horizontally

    hi guys m trying to develop xml matrix report but m totally stuck.value are not expanding vertically.
    RTF tags are here.Plz tell me how can i attach rtf and xml file with this post so you people can help me in better way.
    plz help me its very urgent
    <?for-each:G_1?>
    <?ITEM_CATEGORY?>
    Organization : <?horizontal-break-table:1?>
    <?for-each-group@cell: G_ITEM_CATEGORY; ORGANIZATION_CODE?>
    <? ORGANIZATION_CODE?>
    <?end for-each-group?>
    <?for-each-group: G_ITEM_CATEGORY;ITEM_CODE?> <?ITEM_CODE?>
    <?for-each-group@cell:current-group();ORGANIZATION_CODE ?>
    <?current-group()// AMOUNT?>
    <?end for-each-group?>
    <?end for-each-group?>
    <?end for-each-group?>

    When you say "the values are not expanding vertically" do you mean that on the printed report it is not returning all the values for a given field, i.e. the field is too small to display the entire value.... OR the repeating frame for the group is not expanding enough to display all the fields???

  • SSRS Matrix report. Variance expression by Month. Need to compare month from prior year to current month of current year VS2010

    Please help.  I have a matrix report.  In the report I have row group  PO Type.  One the Column groups I have a parent group by Fiscal Year, and then a child group by Month.  When I run the report, I get two years of data back broken
    out by month.  Please see below.
    Now here is where I am getting stuck.  I need to take the variance between the current month of the current year, from the same month of the prior year.  So I need to show the difference between Oct , 2014 from Oct, 2013. November, 2014 from November
    2013... etc. etc.
    In the example below, how do I create a column or row showing the variance for Contracts for October 2014.  I need to take the contracts for October 2014 which is 3 and subtract that from October 2013 which is 8.  Any suggestions? How do I do that
    for each month?  Then I need to do it for the quarter... then the year?  But I'll be happy if I can just get the month working first.
    Any help will be appreciated. 
    here is what my rdl file looks like.
    Here is what my report looks like when I render it.

    Hi Adrian_s2012,
    According to your description, you want to compare values for the month of current year with the month of prior year and get the variance. Right?
    In Reporting Services, we don't have any function to get this "Year to Year" Growth. In this scenario, if you data source is a cube, we suggest you use Analysis Services to achieve your requirement. If this data source is just from database, it will be hardly
    to calculate the variance because we need to compare the values within every two different column group and matrix generate adjacent columns one by one. Even we make it by using custom, every time executing the long code when generating result
    in a cell will reduce a lot of performance, we really don't suggest to do that in SSRS. Here is a thread with much easier requirement, please take a reference of that:
    http://social.msdn.microsoft.com/Forums/office/en-US/842e2dcb-d949-4297-9d91-eac989692cb5/difference-between-the-grouped-column?forum=sqlreportingservices
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou

  • Formula line in Report painter

    Hello,
    Can I use 'IF' phrase in Formula column in Report painter ?  If so what's the right Syntax .
    Thank you,
    Ran.

    Hi Ran,
    Glad to hear from you too!
    Did you put '.' in the formula at the end of the message? You shouldn't in this kind of statement, so the expression should be:
    IF X005 > 0 THEN X004 + X003 + X005 ELSE X004 + X003
    Regards,
    Eli
    P.S. I tried it, just in case, and it works.

Maybe you are looking for