COGNOiSe.com - The IBM Cognos Community

Legacy Business Intelligence => COGNOS ReportNet => Report Studio => Topic started by: dylsing on 23 Nov 2006 10:41:41 PM

Title: Using "calculated dataitems" in BOTH rows and columns of a crosstab
Post by: dylsing on 23 Nov 2006 10:41:41 PM
1) I am trying to produce a crosstab where both rows and columns are made up of data items that is defined with calculations.
2) My measures area DOES NOT contain any dataitems so what is displayed in there depends on the rows and columns.

Any suggestions how I can get the below crosstab or whether it is possible at all is deeply appreciated.

For example, the final crosstab I am producing is:

Ã,  Ã,  Ã,  Ã,  Ã,  (Current Mth)Ã,  (Current Mth YTD)
SalesÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 45Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  60
CostÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  30Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  40

- In the source database, Sales (code is 001) and Cost (code is
002) are extracted based on a unique code from the db rows.
Each row is one dataitem.
- Current Month figures and Current Month YTD however are two
separate columns in the db
- the db source looks something like this

(Period)Ã,  Ã,  Ã,  Ã,  (Code)Ã,  Ã,  Ã,  Ã, (Description)Ã,  Ã,  Ã,  Ã,  Ã,  (Current Mth)Ã,  Ã,  Ã,  Ã, (Current Mth YTD)
Ã,  2Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 001Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  SalesÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 45Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  30
Ã,  3Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 001Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  SalesÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 0Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  30
Ã,  3Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 002Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  CostÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  15Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  10
Ã,  3Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 002Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  CostÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  15Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  30

- What I did was to create a
- After that I pull the dataitems into the rows, and the Period column (which I
rename as current mth if it is = prompt month) into the
crosstabe to look like this

Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  (Current Mth )
SalesÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 45
CostÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  30

However because I want the Current Mth YTD info as well as a
column, I have no idea how to add it in the same crosstab.
The Sales Dataitem cannot pull from two columns (Current Month &
Current Mth YTD) and populate two different intersections as in
the top crosstab.

Title: Re: Using "calculated dataitems" in BOTH rows and columns of a crosstab
Post by: BIsrik on 27 Nov 2006 01:05:49 AM
This can be done by using auto-populate property of the cross tab. First create the query as like this
dimension - description
facts - CurrentMth,Current MTh YTD

Then choose a cross tab and select the auto-populate. This will give u the required results.

Srik
Title: Re: Using "calculated dataitems" in BOTH rows and columns of a crosstab
Post by: dylsing on 27 Nov 2006 01:51:42 AM
Hey Srik,

thank for the reply! Good to hear a suggestion.

I just realised I made a mistake when I described my database source, it should be:
(Period)Ã,  Ã,  Ã,  Ã,  (Code)Ã,  Ã,  Ã,  Ã, (Description)Ã,  Ã,  Ã,  Ã,  Ã,  (Value)Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  (Value YTD)
Ã,  3Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 001Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  SalesÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  45Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  30Ã, 
Ã,  3Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 001Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  SalesÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, Ã,  Ã,  Ã, 0Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  30
Ã,  3Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 002Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  CostÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, Ã,  Ã,  Ã,  15Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  10
Ã,  3Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 002Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  CostÃ,  Ã,  Ã,  Ã,  Ã,  Ã, Ã,  Ã,  Ã,  Ã,  Ã,  15Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  30Ã, 

My requirements are much more complex than I described and to explain, in my present query, I do not have any facts but instead have:
1) SalesÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  -------> [if (code = 001) then (Value) else (0)] -------->Ã,  will be pulled to the rows area
2) CostÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, -------> [if (code = 002) then (Value) else (0)] -------->Ã,  will be pulled to the rows area
3) ProfitsÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, ------> [Sales - Cost]Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, -------->Ã,  will be pulled to the rows area
4) Current MthÃ,  Ã,  -------> [if period = ?paramMth? then ('Current Mth') else (null)] -------->Ã,  will be pulled to the columns area

This gives me:
Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  (Current Mth )
SalesÃ,  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 45
CostÃ,  Ã, Ã,  Ã,  Ã,  Ã,  Ã,  Ã,  30
Profits  Ã,  Ã,  Ã,  Ã,  Ã,  Ã, 15

I need the rows to be in a certain order (following some old report we have) and for some rows, they are calculated using some formula (eg. [Profits = (Sales - Cost)] ) , and in fact there are many more dataitems to be pulled to the rows area(based on other codes).
Because of this, I have problems adding one more dataitem (Current Mth YTD) to pull to the columns area which is my question now; what's the better way to achieve this effect?

Please feel free to correct me if my design is fundamentally flawed, again thanks for your suggestion.