How to link two fact table in OBIEE

i experts
1. I have one fact table EXCHANGE_FACT(Contains the exchange rate for each curruncy on each day) .
2. I Have anothe fact Table ACCOUNT_FACT(Contains Amount for each currency on each day).
Now i have to link these two table on bace of currency_key and time_key in OBIEE. so i have can i achieve it in OBIEE.
Regards
Frnds

Hi Frnds,
You should create two common dimensions (currency en time) and join each fact table seperately to these dimension. Create a demnsion (hierarchy) for each dimension.
Good Luck,
Daan Bakboord
Scamander Solutions

Similar Messages

• How to Link two Facts with Different Time Granularity (Year, Quarter) to a Single Time Dimension

Hello All,
I have the below scenario where i have Two Facts Fact Quarterly and Fact Yearly but one Time Dimension which has Quarter grain.
So my question is how do i Establish relationship from Fact Yearly to Time Dimension??
Ex:

Hi naveej,
According to your description, you want to know how to build the relationship with time dimension and fact tables. Right?
Based on your screenshot, it's better to have only one fact table for sales and build the relationship with time dimension. To determine quarterly or yearly data only depends on how you slice the time dimension. However, I notice that the Revenue for year
is different from the aggregated Profit for quarters. If the Revenue and Profit are different measure, you need to have two fact tables. And you should build the relationship (Regular) between TimeDim and FactYearly on YYYY attribute.
Reference:
Defining a Fact Relationship
Best Regards,
Simon Hou
TechNet Community Support

• How to link a fact table to one dimension many times

I have fact table which contains four date fields and I want to connect all of them to the Time dimension. I think I probably must split this fact table to multiple tables and then link them to dimensions. What is the right way to solve this kind of problem?
Example: Fact table: TimeIn, TimOut, TimeStart, TimeStop, InPlace, OutPlace, StartPlace, StopPlace, Speed, Weight, Width, Height .....
Thank you

Hello Kostis,
thank you for your answer. I don't fully understand you. Can you show me short example, please? I create alias table for time dimension on Physical Layer - original table is TimeDayDim and I create aliases TimeDayDim1, TimeDayDim2, TimeDayDim3, TimeDayDim4. Then I create foreign key Fact.Time1 -> TimeDayDim1, Fact.Time2 -> TimeDayDim2, Fact.Time3 -> TimeDayDim3, Fact.Time4 -> TimeDayDim4. And what now? Must I create these table api Bussines Model and create new time dimensions at bussiness model????
I need in Answers ONE Time dimension. I think I must split my fact table to four tables ... (time1, place1 ...) (time2, place2 ...) (time3 place3...) (time4 place4...) then link those tables to Time dimension (but I dont know where I can split those tables - on Physical Layer or on Bussines Layer).
I suppose that I will have in Answers one time dimension and four facts tables and I will be able to query them. (for example: Time.Days, Fact1.Place1, Fact3.Speed, Fact4.Count Criteria: Time.Year = 2008)

• How to join Dimensions and Fact Tables in OBIEE

Hi All,
I need to create report which need to get the information from two fact tables and 7 dimensions. The granularity is not same in both the fact tables. One fact table is having common keys between all the dimension tables and second fact table have only two dimension keys but with different names. My requirement is to create the report by taking the measures from both the fact tables.
I have created joins between the second fact table and two dimension tables in physical and BMM layer and also set the highest level for all other dimension tables in the LTS of second fact table. when am creating report by taking the measures from both the fact tables, data is not getting for the measure which taken from the second fact table. Please advice me how to get the data for the measure which taken from the second fact table.

You have to use the level-base measure capabilities.
http://gerardnico.com/wiki/dat/obiee/bi_server/design/fact_table/level_based_measure_calculations
For all measures of the second fact table with the lowest grain (with two dimension keys), set for all dimension where you don't have any key the logical level to the "All" or "Total".
And UNSET the highest level of the LTS for the second fact table.
Success
Nico

• Confirmed Dimensions. OBIEE Not able to pull data from two fact tables.

Hi Experts,
I have a very simple set up of Star Schema with two fact tables and 1 dimension. Both fact tables joined to the dimension at the same level.
When i pull a column from both fact tables and the dimension table in OBIEE, it has to create simple SQL like below:
select FACT1.column1,
Fact2.Column1,
Dim.Column1
from FACT1, FACT2, DIM
where FACT1.ID = DIM.ID and FACT2.ID = DIM.ID
but instead it creating a query in a very complex way:
select case  when D1.c2 is not null then D1.c2 when D2.c2 is not null then D2.c2 end  as c2,
D1.c1 as c3,
D2.c1 as c4
from
(select FACT1.Column1 as c1,
DIM.Column1 as c2
from
DIM T1287863,
FACT1 T1287945
where  (DIM.ID = FACT1.ID)
) D1 full outer join (
select FACT2.Column1 as c1,
DIM.Column1 as c2
from
DIM,
FACT2
where  ( DIM.ID = FACT2.ID)
) D2 On isnull(D1.c2 , '1') = isnull(D2.c2 , '1') and isnull(D1.c2 , '2') = isnull(D2.c2 , '2')
I even tried setting the levels for both the fact tables and it still creates the query in avove way. Any thoughts on this will be vary helpful.

Subramanian,
see below the code we're using for the RFM.
on the ct_containers table i'm passing a line, and its getting updated after the call.
on the ct_errors table i just want to receive the errors and i only receive the line, we add manually there ('Serious error with validation code').
kr, achim
FUNCTION zbapi_ra_validations .
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(IS_RA_SCREEN) TYPE  ZBAPI_S_RA_SCREEN
*"  CHANGING
*"     VALUE(CT_ERRORS) TYPE  ZRA_T_ERRORS
*"     VALUE(CT_CONTAINERS) TYPE  ZRA_T_CONT_IP
DATA:
ls_error       TYPE zra_s_error.
TRY.
EXPORTING
is_screen_flds = is_ra_screen
CHANGING
ct_containers  = ct_containers
ct_errors      = ct_errors.
CATCH zcx_ra.
ls_error-message = 'Serious error with validation code'.
APPEND ls_error TO ct_errors.
ENDTRY.
ENDFUNCTION.
if i call this rfm in SE37 the ct_errors table is populated with all errors and the manually created line.
Message was edited by: Achim Hauck

• How to create a ROLAP Cube that has two fact tables.

I want to know if it is possible to create a ROLAP Cube with two fact tables.
Suppose that I have these two star schemas:
The first star schema has only a measure and a time dimension. The time dimension has three levels (Year -> Month -> Day)
The second star schema has the same measure of the first schema and a time dimension. In this schema the time dimension has only two levels (Year -> Month). The values of the measure of this schema come from the first schema, this is, the value of the measure for a defined year and month results of the sum of all fact values of the first schema, that have the same year and month.
I want to know if is possible to create a ROLAP cube that can get the information of the two star schemas, according to the level that the user are consulting.
For example, if the user consults the cube with "OracleBI Spreadsheet Add-In", and if the user is consulting the first two levels (Year and Month), then the ROLAP cube would get the information of the second star schema.
But if the user does a drill down in a month to get information of the days, then the ROLAP cube would get the information of the first star schema.
Is it possible to do this?
Regards,
Rui Torres

I'm not exactly sure what you want to do. Sorry if I get this wrong.
You have two fact tables, one with data values at the day, month and year levels and a second fact table with data values at just the month and year levels. If this is the case, in the CWM2 APIs or OWB Paris, you would create a view that joins the two tables together and then map this view to the ROLAP cube.
For CWM2 details, please refer to the Oracle OLAP Reference.

• 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

• Connection between two fact tables.

I have a problem in OBIEE 10.1.3.2:
I have two fact tables A and B. Both tables have three columns - time_id, position_id and valuea (table A), time_id, position_id and valueb (table B). I have dimensions TIME (id, time) and POSITION (id, post). Facts A and B are connected to dimensions and
both queries
select TIME.time, POSITION.post, A.valuea,
select TIME.time, POSITION.post, B.valueb
work properly.
But it is definitely impossible to execute query
select TIME.time, POSITION.post, A.valueA, B.valueB.
[NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 15018] Incorrectly defined logical table source (for fact table A) does not contain mapping for [B.VALUEB]. (HY000)
Another two fact tables in the same application I can join in any query wihout any problem.
How is it possible?
Jiri

How did you joined two Fact tables. Did you use Dimension table between?

• Unexpected results getting data from two fact tables through conformed dim

Hi all,
We are getting an unexpected behaviour in our OBIEE 10.1.3.3.3. We have this scenario:
We have {color:#0000ff}2 fact tables{color}{color:#000000} called F1 and F2. F1 has one measure, f1m1 and F2 has another one, f2m1.
We have {color:#0000ff}4 conformed dimensions{color}, called D1, D2, D3, Date.
When we are requesting for individual fact tables, we are getting:
date d1 d2 d3 f1m1
dt1 - x - y - z - m1
dt1 - x - y - z' - m2
date d1 d2 d3 f2m1
dt1 - x - y - z - m3
dt1 - x - y - z'' - m4
But, trying to obtain a compare scenario, we are getting
date d1 d2 d3 f1m1 f2m1
dt1 x y z m1 m4
date d1 d2 d3 f1m1 f2m1
dt1 x y z m1 m3
Looking at query log, we have catched the reason. That's why BI Server is using to solve this request using ROW_COUNT() to join SAWITH0 and SAWITH1 in SAWITH2 result set. So, the order may not be the same in the results sets in every fact table. More or less, generated query is like:
WITH
SAWITH0 AS
(select ....
from F1),
SAWITH1 AS
(select ...
from F2),
SAWITH2 AS
select from (select ...
ROW_NUMBER() OVER PARTITION (....) c10
from SAWITH0.d1 full outer join SAWITH1.d1 ....) D1
{color:#ff0000}where (D1.c10 = 1){color}
select SAWITH2. ....
from SAWITH2
order by c1..c10
The problems seems to be that BI server is ordering the result sets SAWITH0 and SAWITH1 and getting row number to join this results sets, but this is not getting the correct result.
Any ideas?
TIA
Javier
{color}
Edited by: jirazazábal on Mar 13, 2009 2:46 PM

I have done a logical fact table with two fact table source on it.
-------------------- Sending query to database named PRODS_AIX (id: <<153418>>):
WITH
SAWITH0 AS (select sum(T21296.CONSUMERS_SALES_EURO) as c1,
T21309.DIVISION_CODE as c2
from
DIVISION T21309,
C_CONSUMERS_SALES T21296
where  ( T21296.DIVISION = T21309.DIMENSION_KEY )
group by T21309.DIVISION_CODE),
SAWITH1 AS (select sum(T21356.ORDER_VALUE) as c1,
T21309.DIVISION_CODE as c2
from
DIVISION T21309,
DWH_SALES_ORDER_OVERVIEW T21356
where  ( T21309.DIMENSION_KEY = T21356.DIVISION_KEY )
group by T21309.DIVISION_CODE)
select distinct case  when SAWITH0.c2 is not null then SAWITH0.c2 when SAWITH1.c2 is not null then SAWITH1.c2 end  as c1,
SAWITH0.c1 as c2,
SAWITH1.c1 as c3
from
SAWITH0 full outer join SAWITH1 On nvl(SAWITH0.c2 , 'q') = nvl(SAWITH1.c2 , 'q') and nvl(SAWITH0.c2 , 'z') = nvl(SAWITH1.c2 , 'z')
order by c1As you can see one select (SAWITH0) for the first fact table C_CONSUMERS_SALES and one select for the second fact table DWH_SALES_ORDER_OVERVIEW (SAWITH1 ) and the two statement are joined with a full outer join.
I ask me why you have the three select (SAWITH0,SAWITH1 and SAWITH2). Can you please paste the complete SQL performed ?
Can you tell us also which SQL is performed if you select only the columns from one fact table and not for the other ?
Regards
Nico
http://gerardnico.com

• Unable to join two fact tables via one common dimension in RPD(Repository)

I have created two fact tables F1 & F2 and one dimension D.
F1 is joined to D and F2 is also joined to D in Physical layer as well as in BMM layer.
I created one report in OBI Answers using these three tables.It Showed me the following error.
**Error Details**
**Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P**
**State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 15018] Incorrectly defined logical table source (for fact table dfghdfh) does not contain mapping for [Dashboard_Fact.Period_Sgt_Key]. (HY000)**
**SQL Issued: SELECT dfghdfh.Period_Sgt_Key saw_0, "Period Dim".Period_Sgt_Key saw_1, Dashboard_Fact.Period_Sgt_Key saw_2 FROM service_delivery ORDER BY saw_0, saw_1, saw_2**
How to cope up with the issue or can anyone tell me the alternate workaround for this?

That is what i have tried.
I have made a logical table TEST and dragged two fact tables f1 & f2 in source.
Now when i drag different columns from different fact tables(that are in TEST logical table) in report, it gives an error and not making any joins that you are mentioning.
ERROR MESSAGE:--
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 15018] Incorrectly defined logical table source (for fact table Test) does not contain mapping for [Test.SurveyName_Id, Test.SurveyHead_Id, Test.Respondent_Id, Test.SDBusiness_Area_Id, Test.Period_Sgt_Key, Test.OBS_Id, Test.VOCBusiness_Area_Id, Test.Question_Sgt_Key]. (HY000)
The columns mentioned in the error message are all from test logical table..some are from F1 & some from F2.

• Problem querying over two fact tables

The business requirement is that we want to be able to see sales for two different periods of times, over different brands, different Items' years and seasons per periods.
So for the different dimensions I created alias having two tables in the physical layer
for Brands, Shops and Items (tables) [These are the tables where I query for different brand, Item's year and different season]. The Business Model Schema looks like this:
Items-----> SALES <------Brands Items 2-----> SALES 2 <------------Brands 2
^ ^
TIMES TIMES 2 (TIMES JOINED WITH SALES AND TIMES 2 WITH SALES 2)
and VENDORS connected to both SALES & SALES 2 left outer joined
The need is that I need to query over two indepedent periods of time with independed dimensions but for a common dimension (Vendors).
The presentation data simplified looks like this:
Vendor Sales Qty Sales 2 Qty
1092 234 123
The problem is that when a vendor doesn't exist in one period it doesn't come and in the other although there are sales. So when I query with the same filters (same period of time, Brands, Items' years and seasons) over these two fact tables I get the same sales and correct data. When there are different criteria then I lose data.
The Query fired in the database is the following:
select distinct case when D2.c4 is not null then D2.c4 when D1.c4 is not null then D1.c4 end as c1,
D1.c3 as c4,
D1.c1 as c5,
D1.c2 as c6,
cast(D1.c2 / nullif( D1.c1, 0) * 100 as DOUBLE PRECISION ) as c7,
D2.c3 as c8,
D2.c1 as c9,
D2.c2 as c10,
cast(D2.c2 / nullif( D2.c1, 0) * 100 as DOUBLE PRECISION ) as c11
from
(select sum(T43161.amnt_1) as c1,
sum(T43161.mk_1) as c2,
sum(T43161.qty_1) as c3,
T7120.VE_NAME as c4
from
VE04_TBL T7120,
GE04_COMPANY_TBL T43802,
EI04_TBL T6931,
Salesmcost T43161
where ( T6931.EI_CODE = T43161.ei_code and T6931.VE_CODE = T7120.VE_CODE and T6931.GE_COMPANY_CODE = '1' and T6931.EI_SEASON_CODE = 'Χ' and T6931.EI_YEAR = '2009' and T7120.GE_COMPANY_CODE = '1' and T7120.VE_CODE = T43161.ve_code and T43161.ge_company_code = T43802.GE_COMPANY_CODE and T43802.GE_COMPANY_NAME = '*** Φ. & Κ. ΛΕΜΟΝΗΣ ΑΕΒΕ ****' and T43802.LIST_ITEM_IND = '1' and T43161.trans_date >= ADD_MONTHS(TO_DATE('2010-05-12' , 'YYYY-MM-DD'), -7 * 12 ) and T43161.trans_date between TO_DATE('2009-01-01' , 'YYYY-MM-DD') and TO_DATE('2009-01-31' , 'YYYY-MM-DD') )
group by T7120.VE_NAME
) D1,
(select sum(T44099.amnt_1) as c1,
sum(T44099.mk_1) as c2,
sum(T44099.qty_1) as c3,
T7120.VE_NAME as c4
from
EI04_TBL T44615 /* EI04_TBL 2 */ ,
VE04_TBL T7120,
GE04_COMPANY_TBL T43802,
Salesmcost T44099 /* Salesmcost_2 */
where ( T7120.VE_CODE = T44099.ve_code and T7120.VE_CODE = T44615.VE_CODE and T7120.GE_COMPANY_CODE = '1' and T43802.GE_COMPANY_CODE = T44099.ge_company_code and T43802.GE_COMPANY_NAME = '*** Φ. & Κ. ΛΕΜΟΝΗΣ ΑΕΒΕ ****' and T43802.LIST_ITEM_IND = '1' and T44099.ei_code = T44615.EI_CODE and T44615.GE_COMPANY_CODE = '1' and T44615.EI_SEASON_CODE = 'Χ' and T44615.EI_YEAR = '2008' and T44099.trans_date between TO_DATE('2008-01-01' , 'YYYY-MM-DD') and TO_DATE('2008-01-31' , 'YYYY-MM-DD') )
group by T7120.VE_NAME
) D2
where ( D1.c4 = D2.c4 ) /*<------- I think that this join creates the problem*/
order by c1
Edited by: user1198434 on 12 Μαϊ 2010 5:14 πμ
Edited by: user1198434 on 12 Μαϊ 2010 5:41 πμ

Hi,
go through this
http://obiee101.blogspot.com/search/label/OUTER%20JOIN
I think you are new to the forum. try searching through some of the famous obiee forums. Gurus have already covered most of the issues. few are,
http://obiee101.blogspot.com
http://oraclebizint.wordpress.com/
http://gerardnico.com/weblog/
http://108obiee.blogspot.com/
thanks,
karthick

• Result set from two fact tables

Hi,
I have two fact tables, fact1, fact2. These two fact tables share common dimension dimension1.
In RPD I joined dimension1 to fact1, fact2.
In Answers I pulled the columns from fact1, fact2 and dimension1, I am getting ODBC Error, no fact table exists at the requested level..
When I pull the columns from fact1, dimension1 i am getting result.
When I pull the columns from fact2, dimension1 i am getting result.
Please suggest me how to resolve this.
Thanks & regards,
SR

Whether Fact1 and Fact2 are 2 sperate Logical Fact Tables or part of same logical fact tables.
If they are separate logical fact tables then check for the Properties of Logical Table Source - Content Tab and set aggregation level for Dimension 1 hierarchy for respective facts.
Thanks!
Exa-BI

• One DIMENSION, Two FACT Tables - One WEEKLY grain, one DAILY grain

All the OBIEE gurus, thanks for checking out this post.
Background: We have a common DIMENSION referencing two FACT tables having different granularity.
DIM = Customer Dim
FACT = Forecasting (Weekly granularity)
FACT = Sales (Daily granularity)
There is a need to report from the Customer Dimension table AND access the Forecasting FACT (weekly grain) & Sales FACT (daily grain).
Example of query is listed below:
Give me customer = 'ABC' and the forecast and sales for a specific time period.
What will be the best way to handle something like this? I have seen examples of handing multi-fact table access in OBIEE but the granularity of both the FACT tables is different (weekly vs. daily).
Any help with an example is greatly appreciated.
Thanks,
Sunshine

Hi.
This one:
Joining different level aggregation measures together into a single logical fact table
http://108obiee.blogspot.com/2009/07/joining-different-level-aggregation.html
Regards
Goran
http://108obiee.blogspot.com

• Joining two fact tables for subject area

When I tried to use two simple fact tables joined by a dimension, I am getting the “ No fact table exists at the requested level of detail” error in the answer when I try to pull the columns from Fact 1 and Fact 2 tables. I have set the content in both the fact table to lowest granularity of dimension with CUST_ID, RAT_ID, ACT_ID keys. We have one to many relationships between dimension and both the fact tables. Any feedback is highly cherished.
Fact1: keys are: CUST_ID, RAT_ID, ACT_ID, YEAR
Fields are CUST_ID, RAT_ID, ACT_ID, YEAR , Rev1, Transaction Date
Fact2: keys are: CUST_ID, RAT_ID, ACT_ID, YEAR
Fields are CUST_ID, RAT_ID, ACT_ID, YEAR , Rev2, CreationDate
Dimension keys are CUST_ID, RAT_ID, ACT_ID
Thanks,
uday

Hi LC,
We have to add two fact tables F1 AND F2 to an existing bmm. These fact tables have history tables F11 AND F22 and we have to use partition logic for this.How you did partition ? you should be using Fragmentation logic for that any how you will add the F11/F22 tables to F1 and F2 LTS , so when you join F1 & F2 to the common dimension then it should work for the calucluated measures but dont forgot to create hierarchies and specify the content levels for the fact tables
Thanks,
Saichand

• 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

Actually, I've tried the solutions you guys mentioned. Generally speaking, the result should be displayed. However, my scenario is a little bit tricky.
table Y's figures are not the aggregation of table X for D dimension. Instead, table Y's figures include not only D dimension total, but also others (others do not mean A, B, C dimension). For example, table Y stores all food's figure, while table X stores only drink's figure. D dimension is only about drink's detail. In my scenario, other foods' figure is not provided.
So, even if I set D dimension to all/total for table X, table X's result is still not the same as table Y.
Indeed, table Y does not have a column key to join to D dimension's key. So, if I select D dimension and table Y's measures at the same time in BI Answer, result returns no data. Hence, I can't compare table X and table Y's results with selection of D dimension.
Is there any solution to solve this problem?
Edited by: TomChan on Jun 3, 2009 9:36 AM

Maybe you are looking for

• Need to reinstall Snow Leopard?

I'm sorry if this is in the wrong place, I am new to posting in the forum. I just got my iMac back a few days ago from Best Buy, it had the hard drive replaced (for the 2nd time in 7 months). What had happened this time was that it was constantly fre

• Preventing hang on a method call in doGet ()

Hi, I have the following problem. Inside the doGet() method, I have a method call X which may take a long time or hand, what it does is do some calculations and return a object Obj. Then I can send this Obj back to client. My question is how can i se