# Modelling 2 Fact Tables with Non-Conforming Dimension in OBIEE 11g

Hi all,
I have two fact tables (Fact 1 and Fact 2) and two dimension tables (Product and Rule). The Product dimension table is a conforming dimension and is used in both fact tables, but the Rule dimension is a non-conforming dimension which is used only one fact table. I'm using OBIEE 11g (11.1.1.6.0).
====
Fact 1
====
Sales ID | Product ID | Quantity | Sales Description | Sales Status
S001 | P001 | 100 | bla bla bla bla bla | N
S001 | P002 | 200 | bla bla bla bla bla | N
S002 | P001 | 200 | lab lab lab lab lab | Y
S002 | P003 | 250 | lab lab lab lab lab | Y
Notes for Fact 1:
- One Sales ID can have multiple Product IDs
- Sales Description and Sales Status are the same for one Sales ID (repeating Sales Description and Sales Status for the same Sales ID)
====
Fact 2
====
Sales ID | Product ID | Rule ID | Score
S001 | P001 | R001 | 2
S001 | P001 | R002 | 3
S001 | P002 | R003 | 1
S002 | P001 | R003 | 1
S002 | P003 | R002 | 2
S002 | P003 | R004 | 5
Notes for Fact 2:
- One combination of Sales ID and Product ID can have multiple Rule ID
I'm wondering how best to model these tables so that I can create this report (number of the dimension and fact tables created in the business model, level mapping, aggregation rule, etc)? Any suggestion/advice on how to achieve this?
Sales ID | Product ID | Quantity | Sales Description | Sales Status | Rule ID | Score
S001 | P001 | 100 | bla bla bla bla bla | N | R001 | 2
S001 | P001 | 100 | bla bla bla bla bla | N | R002 | 3
S001 | P002 | 200 | bla bla bla bla bla | N | R003 | 1
S002 | P001 | 200 | lab lab lab lab lab | Y | R003 | 1
S002 | P003 | 250 | lab lab lab lab lab | Y | R002 | 2
S002 | P003 | 250 | lab lab lab lab lab | Y | R004 | 5
Thank you very much!

Hi Dhar, thanks for the suggestions.
I tested what you suggested, but the result is not as per my expectation mentioned above. Here's what I did:
1. In physical layer:
- I joined Fact 1 table with Product dimension table only
- I joined Fact 2 table with Product and Rule dimension tables
- I created 3 logical tables: Fact, Product, and Rule
- The Product table contains the Product ID and Product Name from the Product dimension table in the physical layer
- I created the hierarchy (logical dimension) for Product with only ProductTotal level (as the grand total level) and ProductDetail level that contains Product ID and Product Name
- The Rule table contains the Rule ID and Rule Name from the Rule dimension table in the physical layer
- I created the hierarchy (logical dimension) for Rule with only RuleTotal level (as the grand total level) and RuleDetail level that contains Rule ID and Rule Name
- The Fact table contains 2 logical tables sources: Fact 1 (which logical level in the Content tab is mapped to ProductDetail and RuleTotal) and Fact 2 (which logical level in the Content tab is mapped to ProductDetail and RuleDetail)
- The Fact table contains Sales ID logical column (mapped to both Fact 1 and Fact 2 logical table sources)
- The Fact table also contains Sales Description and Sales Status logical columns (mapped to only Fact 1), which aggregation rule is the default to None
- The Fact table also contains Quantity logical column (mapped to only Fact 1), which aggregation rule is set to Sum
- The Fact table also contains Score logical column (mapped to only Fact 2), which aggregation rule is set to Sum
OBIEE returns the expected result when I retrieve the report:
Sales ID | Product ID | Quantity | Sales Description | Sales Status
However, OBIEE returns an error when I retrieve the reports:
Sales ID | Product ID | Quantity | Sales Description | Sales Status | Rule ID
or
Sales ID | Product ID | Quantity | Sales Description | Sales Status | Rule ID | Score
The error is:
Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 14020] None of the fact tables are compatible with the query request FACT.SALES_STATUS. (HY000)
And the Score column is blank when I retrieved this report:
Sales ID | Product ID | Quantity | Sales Description | Sales Status | Score
Edited by: stewartlife on Nov 29, 2012 4:01 PM

### Similar Messages

• Querying against two fact tables with non conformed dimension

I have two fact tables and I have this set up in RPD :
Fact1 joined to DimA and DimB
Fact2 joined to DimA
On Front end I build two analysis:
Analysis 1:
DimA.A, Fact1.1, Fact2.2
Analysis 2 :
DimA.A, DimB.B, Fact1.1, Fact2.2
In the results of Analysis 1 , I am seeing correct values for Fact2.2
In the results of Analysis 2, I am seeing Fact2.2 as empty column. I think the reason is that Fact2 is not joined to DIMB.
Is it possible that I should be able to report against both dimension tables (DIMA and DIMB) columns for FACT1 and FACT2 measures.... Even though I don't have join between DIMB and FACT2.
Regards,
Annu

Hi,
Go to the LTS-- Content Level of the fact which does not have join with Dimension and put Total level for that Dimension and total level on Column(Measure also)(Double click --Levels)(Assume Dim Hierarchy is  already set up)
Pull everything(D1,D2,F1,F2) You will see results.
Update Me
Thanks
NK
Edited by: DNK on Mar 20, 2013 1:35 PM

• Multiple facts with non-conforming dimensions

Hi, I have a question re: using multiple facts in a report, where one of the facts has a non-conforming dimension.
I have two metrics: "PAYROLL" and "UNRECONCILED DIFFS". The payroll metric is at the employee level, but the "UNRECONCILED DIFFS" is not. Here's what I've done so far:
1. Set up a single logical fact table in the business layer
2. Created 2 LTSs. One has "employee" level, one has "all employees" (i.e. the grand total level)
3. Created metrics for PAYROLL and UNRECONCILED DIFFS, each pointed to the proper LTS
4. Set the "employee" hierarchy level for "UNRECONCILED DIFFS" to the "all employees" level
This is working...kind of. If I have three employees with a payroll amount of \$1000, and there is a \$500 unreconciled diff, the report shows up like:
Employee Payroll UnrecDiff
Emp1 \$1000 \$500
Emp2 \$1000 \$500
Emp3 \$1000 \$500
Total          \$3000    \$500
Here's what I'm wondering...instead of having the unreconciled difference repeated for each employee...is there any way it can just be \$0 or (even better) NULL, but then still show up as \$500 in the total line?
Thanks!
Scott

Hi
The problem you describe is similar to mine (I wrote several threads ago).
That is, if there is a non-conformed dimension in a report then the column from the fact table which is not connected with those non-conformed dimensions containes zeros or blanks.
Was this problem solved? I didn't quite catch one of previuos messages... If you can please repeat it more detailed.
What I tried to do is to set Total level in the Content tab (LTS properties). In this example - I could set Total level to JOBS in the plan type dimension. But it didn't help.
So if you know what to do then please describe it here...

• Best way to connect two fact tables when no conformed dimension exists

Can anyone please elaborate how would I connect two fact table without any conformed dimension. Let say FACTA, FACTB. FACTB is related to a dimension "StatusDim". I want to select the count of all FACTA item which are related to FACTB items with
a particular status. I have found the following article but just wondering whether it is the best practise to connect two fact tables directly.
http://bifuture.blogspot.com/2011/11/ssas-selecting-facts-with-reference.html
Thank you

Hi Ahsan,
After read the blog you posted, I think it's a pretty good solution to create a view in the relational database or a named query in the Data Source View containing as the the columns in FACTA and FACTB. Then build a dimension from it, setting the "Null processing"
property (you have to click the "plus" two times for the "Key Columns" property of the attribute in BIDS to access this property) to "UnknownMember". And then use this dimension for the many-to-many relationship. Dimensions from FactA can benefit of the reference
relationship between FactA and FactB and therefore a powerful solution it is.
Regards,
Charlie Liao
If you have any feedback on our support, please click
here.
Charlie Liao
TechNet Community Support

• Problem using 2 Fact tables with the same dimension

Hi,
I have noticed a very strange behaviour in Presentation Services / BI Administrator. I have 2 cubes (created in OWB) which are in the same business model, they are set up with foreign keys etc. and works as they should using them separately. Problem is (sometimes!) when I want to use the common dimension (Project) against both of the fact tables (Sales Order and Purchase Order).
Scenario 1:
If I use Project Id, Purchase Amount, Sales Amount I get either an amount in Sales Amount or in Purchase Amount, BUT if the Project Id starts with a letter (not starting with a number) it will show the correct amount for both Sales- and Purchase Amount.
Scenario 2:
I use Project Description (even followed by Project Id or not), Sales Amount, Purchase Amount I get the correct numbers for all projects. Project Description must come before Project Id or else it will not work.
I only noticed this problem when using both of the Fact tables since I want to compare Sales Amount and Purchase Amount in each Project. The Dimension for Project consist of Project, Sub Project and Activity and works fine. If I only use Sales Amount or Purchase Amount with Project Id I don't get this error. Only when both numbers are used.
I would be very happy if anyone have a good solution/explanation to this problem! Seems like could be something in the BI Server memory that goes wrong somewhere.

The strange thing is that the results from the queries are correct running them in SQL Developer. This is one that works:
SELECT Project.Project saw_0, "- SalesOrderFact"."Sales Amount" saw_1, "- PurchaseOrderFact"."Purchase Amount" saw_2, REPORT_SUM(saw_1 BY ), REPORT_SUM(saw_2 BY ) FROM SalesOrder ORDER BY saw_0
SALES ORDER:
select T3032.PROJECT_DESCRIPTION as c1,
sum(T161.SALES_AMOUNT_LOCAL) as c2
from
DIM_PROJECT_V T3032,
CUBE_SALES_ORDER T161
where ( T161.DIM_PROJECT = T3032.DIMENSION_KEY )
group by T3032.PROJECT_DESCRIPTION
order by c1
PURCHASE_ORDER:
select T3032.PROJECT_DESCRIPTION as c1,
from
DIM_PROJECT_V T3032,
CUBE_PURCH_ORDER T3020
where ( T3020.DIM_PROJECT = T3032.DIMENSION_KEY )
group by T3032.PROJECT_DESCRIPTION
order by c1
And this will give the wrong result in Answers (correct in SQL..):
SELECT Project."Project Id" saw_0, "- SalesOrderFact"."Sales Amount" saw_1, "- PurchaseOrderFact"."Purchase Amount" saw_2, REPORT_SUM(saw_1 BY ), REPORT_SUM(saw_2 BY ) FROM SalesOrder ORDER BY saw_0
SALES_ORDER:
select T3032.PROJECT_KEY_NAME_ID as c1,
sum(T161.SALES_AMOUNT_LOCAL) as c2
from
DIM_PROJECT_V T3032,
CUBE_SALES_ORDER T161
where ( T161.DIM_PROJECT = T3032.DIMENSION_KEY )
group by T3032.PROJECT_KEY_NAME_ID
order by c1
PURCHASE_ORDER:
select T3032.PROJECT_KEY_NAME_ID as c1,
from
DIM_PROJECT_V T3032,
CUBE_PURCH_ORDER T3020
where ( T3020.DIM_PROJECT = T3032.DIMENSION_KEY )
group by T3032.PROJECT_KEY_NAME_ID
order by c1
As you can see the SQL look very familiar, and I cannot see anything in SQL that should be the cause of this error. I think the error must be in the BI Memory or something.
Any ideas?

• Problem: two fact tables and one conformed dimension

Hi everyone!
I need to solve this situation:
I have two fact tables, let's say F1 and F2, that are both linked to D1, my conformed dimension
I just need to select fields from D1 but I know that, when querying, OBIEE links it to a fact table anyway..how does it choose the fact table? That is, if I only want fields from D1, does the system queries also from F1 or F2? Is it a random choice?
Is there a way to "force" this choice, telling the system for example to choose only from F1?
Is there a workaround to solve this situation? Remember, I only need fields from D1.
Thanks!!

The solution of your problem is "Implict Fact Column"
Go to presentation layer and double click on your subject area. then you will see Implict fact column option. click on set. give corresponding fact column there( in your case give F1 fact column)
references: http://oracle-bi.siebelunleashed.com/articles/implicit-fact-column/
Thanks
GSR
Edited by: GSR on Mar 20, 2012 3:22 PM

• Filter and non-conforming dimensions

I have a model design which includes three fact tables with non-conforming dimensions. This causes BI to create multiple queries for a report and finally bring the results together using a full outer join at the end. When I attempt to filter on a field from one of the non-conforming dimensions, that filter is not applied at the full outer join step but during an earlier step related to the chosen filter field. This results in more data returning then desired. I need to move the filter to the full outer join step. Here are two sub-optimal methods that I have found to work around the issue.
1. Build the logical query in answers. Then, wrap that query with an outer query and apply the filter to the outer query.
2. Build a minus query in answers that removes the records you don't want to see.
I have seen this issue discussed in other threads, but I haven't found a good solution. Does anyone have any recommendations?
Thank you,
Edited by: user10715047 on May 21, 2010 7:13 AM
Here is a decent description of the problem
http://siebel.ittoolbox.com/groups/technical-functional/siebel-analytics-l/two-fact-tables-and-nonconforming-dimensions-3297052
and this is a better solution than the two I stated above. However, even this solution is not going to be very intuitive for the users
http://siebel.ittoolbox.com/groups/technical-functional/siebel-analytics-l/two-fact-tables-and-nonconforming-dimensions-3298529

i know this is a bit old thread but thought it might be helpful to someone who came across the same issue...
when using [email protected]\$ion ( this is !nner joned to FACT tables in BMM) and if any of the dimensions {other than [email protected]\$ion (Let us say Dim X) } have an ()uter join to any of the fact tables, and you were doing your analysis using [email protected]\$ion,  Dim X, Measure value you will face the following issues.
when filtering the analysis on the ()uter join dimension ( Dim X), the IN filter will not work. Reason is that the filter is getting applied to both the Dimension and FACT tables and the values that exist in Dimension Dim X but not in FACT table wont show up.
The above issue can be fixed by changing the join between the fact and [email protected]\$ion from inner to outer.

• Obiee 11g non-conforming dimensions and nQSError 14025

Does anyone know how to configure the 11g repository for non-conforming dimensions? This worked fine in 10g. I have upgraded the repository to 11g and it doesn't work anymore. I am receiving the error [nQSError: 14025] No fact table exists at the requested level of detail. I have tried building a simple test subject area and testing different configurations, but I have not had any success.
Edited by: user10715047 on Jan 27, 2011 12:33 PM

Ah, I love answering my own questions. :/
The only way I could make this work was a follows...
1. Make sure you have a level-based dimension for each of your logical table dimensions (both conforming and non-conforming).
2. For the fact table measures, set the levels as you did in 10g with the non-conforming dimensions at the Grand Total logical level for each measure.
3. For the fact table LTSs, set the logical level in the Content tab to the dimension's lowest level for each conforming dimension (leave the non-conforming dimensions level blank).
Unfortunately, the query generated in 11g will add an additional sub-query to the mix even though it doesn't appear to have any benefit. Therefore in 10g, if you have two logical fact tables with non-conforming dimensions, three sub-queries were required to create the result set. Two queries for the facts and their related dimensions and a final full outer join to stitch the results together. In 11g, you have one query without the measures, two queries with the measures, and the final outer join.
I am talking to Oracle support about this issue, but I haven't made much progress yet. I asked development to confirm my repository design and they say it checks out. They indicated that the additional query is a design change/enhancement. I am not getting a warm and fuzzy on this one. I'll post back if I make any progress.
Oh, did I mention that this change has broken queries where I attempt to combine fields from two non-conforming dimensions?!? This worked fine in 10g.

• Filters on non-conforming dimensions when fetching data from multiple facts

Hi,
I would like to confirm my understanding about how OBI fetches data from multiple facts. I have set up the BMM layer. Through Answers I am getting data from multiple facts as expected. However, is it necessary to base filters only on the conforming dimensions? If I do so, I am getting the correct data. But if I filter data on non-conforming dimensions, then I am getting more data which I am not expecting.
Suppose, Fact1, Fact2 and Fact3 share a CommonDim dimension. If I have a filter on CommonDim, then the filter is used on the three fact tables. However, if I filter data based on Fact1's DimTwo which is not shared by Fact2 and Fact3 and I have measurements from all the fact tables, then from the SQL generated, it seems that OBI is fecting all data from Fact2 and Fact3 and data from Fact1 where DimTwo = 'SomeValue'. Then it seems to be merging the data from the three result sets.
Is this expected, esp. a scenario where a filter is based on a non-conforming dimension (DimTwo in the example)? Have I missed anything? What do I need to do, if I want to return rows from Fact1 based on DimTwo's filter and then if there is data on Fact2 and Fact3 based on the value in CommonDim corresponding to DimTwo's filter?
Thanks and regards,
Manoj.
PS.: I have got a link now which is http://obibb.wordpress.com/2010/06/06/multiple-fact-reporting-on-non-conforming-dimensions-part-ii/
Edited by: mandix on 25-Oct-2011 12:01

Hi
The problem you describe is similar to mine (I wrote several threads ago).
That is, if there is a non-conformed dimension in a report then the column from the fact table which is not connected with those non-conformed dimensions containes zeros or blanks.
Was this problem solved? I didn't quite catch one of previuos messages... If you can please repeat it more detailed.
What I tried to do is to set Total level in the Content tab (LTS properties). In this example - I could set Total level to JOBS in the plan type dimension. But it didn't help.
So if you know what to do then please describe it here...

• Multiple facts with some non-conforming dimensions

Hi, in our datamart, I have several fact tables. The JOBS fact table includes dimensions of time, employee, org, and job.
Other fact tables include those 4 base conformed dimensions, plus dimensions specific to the fact. For example, BENEFITS includes a "plan type" dimension, etc.
When reporting, I want counts from the basic JOBS fact table to always show up - even if other data in the report contains the "non-conformed" dimensions. For example, I'd like a report that lists time periods, employee counts (from JOBS fact), and enrolled employee counts (from BENEFITS fact), something like this:
Month Benefit Plan Emps Enrolled Emps
Jan 2009 Health Insurance 10,000 8,000
Jan 2009 401k Plan 10,000 4,000
When I try to produce this report, because "benefit plan" is not a dimension tied to the JOBS data, the EMPS column comes out blank. Yes, I can add a total row at the bottm to show it...but I really want the 10,000 to show up on each row (also because I want to calculate a % of people enrolled out of the total population).
What's the best way to accomplish this? Also given that I have 4 or 5 other fact tables, and each of them have their own "personal" dimensions in addition to the conformed ones.
Scott

Hi
The problem you describe is similar to mine (I wrote several threads ago).
That is, if there is a non-conformed dimension in a report then the column from the fact table which is not connected with those non-conformed dimensions containes zeros or blanks.
Was this problem solved? I didn't quite catch one of previuos messages... If you can please repeat it more detailed.
What I tried to do is to set Total level in the Content tab (LTS properties). In this example - I could set Total level to JOBS in the plan type dimension. But it didn't help.
So if you know what to do then please describe it here...

• Non-conforming Dimensions modelling

Hi
I am using BIEE version 11.1.1.6
I am struggling to model a situation where I do have 2 fact tables F_1 & F_2 and 3 dimensions D_1, D_2, D_3
D_3 is the only conformed dimension
D_1 is only connected to F_1, D_2 is only connected to F_2.
Content levels for measures in F_1 are set to Total for D_2.
Content levels for measures in F_2 are set to Total for D_1.
In Answers I can't create a report where I filter on one or both of the non-conformed dimensions.
I assume it's still possible to use non-conforming dimensions in analysis
and filter the analysis on values from the non-conforming dimension? (The part of the analysis that can be filtered by these values, measures not connected to the non-conforming dimension will of course not be filtered).
Are there any rules to follow in 11.1.1.6 modelling non-conforming dimensions besides setting measure content level to Total for the non-conforming dimension?
Andy

Hi Andy
Please find the blogs it will resolve ur issue.
http://108obiee.blogspot.com/2009/08/joining-two-fact-tables-with-different.html
http://www.kpipartners.com/blog/bid/83120/What-To-Do-When-OBIEE-Fact-Tables-Do-Not-Join-to-All-Dimension-Tables
Thanks
NK

• Non-Conforming Dimension Model Question 14020

Guys
I have two fact tables combined into a single Logical Fact Table. There is a single conformed dimension for both fact tables, and each fact also has its own non-conformed dimension.
So effectively I have:
D1---<F1>---D2---<F2>---D3
but (F1) and (F2) are combined into single Logical table.
I have set the logical levels for the measures F1 to be Total (D3) and the measures F2 to be Total (D1).
If I select D1, D3 and F1/F2 measures then all works well. If I remove one or both of the measures I then get the dreaded 14020 error. I have tried setting the implicit fact measure for the Presentation Folder but this has no effect.
Is it possible with my current setup to select from the Dimension tables without selecting measures?

Hello Matt,
Thanks

• Load fact table with null dimension keys

Dear All,
We have OWB 10g R2 and ROLAP star schema. In our source system some rows don’t have all attributes populated with values (null value), and this empty attributes are dimension (business) keys in star schema. Is it possible to load fact table with such rows (some dimension keys are null) in the OWB mappings? We use cube operator in mappings.
Thanks And Regards
Miran

The dimension should have a row indicating UNKNOWN, this will have a business key outside of the normal range e.g. -999999.
In the mapping the missing business keys can then be NVL'd to -999999.
Cheers
Si

• Join fact table with higher dimension level

how do i join fact tables with higher dimension levels with discoverer?
fact with detail at level C
measure X
dimension with
D->C->B->A
E->C
level
A B C
1------1------1
2------2------1
3------2------1
join between fact X and dimension level C
X=3*C because of sum(X) in discoverer and 3xC in dimension
is there a way to get correct values for X without creating a dimension like
D->C
E->

another way of asking this is whether you can create a summary table in Discoverer at a higher level than a dimension's fundamental grain. In other words - the summary examples in the documentation all describe leaving out one or more of your dimensions... they are either left in or completely taken out. But, some of the most effective summarization occurs when you summarize daily data to a monthly level. Assuming that I have a sales table (at a daily level, and a key value sales_date), and a table date_dim (primary key sales_date), I would like to create a summary sales_month_summary where the sales are grouped on month_year (which is a field in the sales_date table).
How is this done? I suspect that we can't use the date_dim table with the summary (due to the problems noted by the poster above). Do we have to create another table "month_dim"? Do we have to fold all of the desired date attributes (month, quarter, year) into the summary? Obviously we'd like to re-use all of the pertinent already existing date items (quarter, month, year, etc.), not recreate them over again, which would result in essentially two sets of items in the EUL. [One used for this month summary, and another used for the detail.]
I searched the forum - someone asked this same question back in 2000 - there was no answer provided.
The only other thought I have is to "snowflake" the date_dim into two tables and two folders, one at a date level, another at the month level. Then the detail tables can connect to date_dim (which is linked to month_dim), while the summary data can connect directly to month_dim.

• Joining two fact tables with different dimensions into single logical table

Hi Gurus,
I try to accomplish in Oracle Business Intelligence 11.1.1.3.0:
F1 (D1, D2 and D3)
F2 (D1 and D2 and D4)
And we want to build a report F1 F2 D1 D2 D3 D4 to have data for:
F1 that match only for D1-D2-D3
and data for
F2 that match only D1-D2-D4
all that in one row, so D3 and D4 are not common dimensions.
I can only do:
F3 (D1, D2)
F4 (D1, D2 and D4)
And report
F3 F4 D1,D2,D4 (all that in one row, and only D4 is not a common dimension)
Here is the very good example how to accomplish the scenario 1
http://108obiee.blogspot.com/2009/08/joining-two-fact-tables-with-different.html
But looks like it does not work in 11.1.1.3.0
I get
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 14025] No fact table exists at the requested level of detail: [,,Clients,,Day,ROI,,,,EW_Names,,,,,,,,,,,,,,,,,]. (HY000)
I am sure I set up everything correctly as advised in the blog but it works with only one not a common dimension
Is it a bug in 11.1.1.3.0 or something?
Thanks,
Kate