Populating a bridge table
Hi please I have a case where
two dimesions are to be linked by a bridge table
dim a
Accid PK
Dim b
Bid PK
Accid FK
Fact table
Fid PK
Accid FK
Bridge table
Aid PK
Bid PK
I have checked different examples online, and they used small data and insert the data in the bridge table manually, Please what is the best logic of populating a bridge table
Hi 14QR1A,
According to your description, you have two dimension tables have many to many relationship. Now you want to create a bridge table link dim a and dim b. Right?
In this scenario, since the dim a and dim b has many to many relationship, when building a link table, you have to crossjoin these two tables. It means you need to insert all combination of Aid and Bid as records into this bridge table.
Bridge Table
Aid(PK) Bid(PK)
1 A
1 B
2 A
2 B
Best Regards,
Simon Hou
TechNet Community Support
Similar Messages
-
How to define an aggregation rule for a dimension based on bridge table?
Hello,
I need a solution for aggregating data correctly when using a dimension based on a set of dimensione tables containing a bridge table. Please find below a description of my business case and the OBIEE model which I’ve created thus far.
Business Case
The company involved wants to report on the number of support cases, the different types of actions that were taken and the people involved in those actions. One support case will undergo a number of actions (called ‘handelingen’) until it is closed. For each action at least one person is involved performing a specific role, but there can also be multiple persons involved with 1 action, each performing a different role for that action. This is the N : N part of the model.
The problem that I face is visible in the two pictures below:
http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/sample.png
As long as I don’t include anything from the Dimension Meelezer in my report, I get the correct number of handelingen (7). When I include the person (called ‘Meelezer’), the measuere per action is multiplied by the number of persons/roles involved with that action.
When I changed the Aggregation rule in the report column #Handelingen to ‘Server Complex Aggregate’ I do get the correct endtotal:
http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/sample2.png
I believe it should be possible to define in the repository a different aggregation rule for individual dimensions, but I’ve not been able to achieve this.
Explained below is what I have created in my Physical and Business Model & Mapping layers:
The Physical Model is built like this:
(This is just a small part of a much larger physical model, but I’ve only included the most relevant tables)
http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/PhysicalDiagram-1.png
The Fact table (ALS Feit Zaakverloop) contains FK’s for the action (FK_HANDELING, joined to ALS Dim Handeling), the date the action took place (FK_DATUM_ZAAKVERLOOP, joined to ALS Dim Datum Zaakverloop) and the uniqe group of people involved (FK_MEELEZERS, joined to ALS Groep Meelezers) and a measure column (SUM_HANDELINGEN) populated with the value ‘1’ for each row.
The Bridge table (ALS Brug Meelezer/Reden Meelezen) contains three FK’s: FK_GR_MEELEZERS (joined to ALS Groep Meelezers), FK_MEELEZER (joined to ALS Dim Functionaris) and FK_REDEN_MEELEZEN (joined to ALS Dim Reden Meelezen).
The Business Model
In the business model, the four physical tables for the N:N relation have been combined into one logical dimension table.
http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/BusinessModel-1.png
DIM Meelezer contains one LTS in which the four physical tables have been combined:
http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/LTS1.png
And all the required locical columns have been created:
http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/LTS2.png
DIM Meelezer has also been identified as a bridge table and a Business Key has been defined on a combination of the FK’s in the bridge table and business codes of the two dimension tables.
http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/BMDIM.png
Next a hierachy was created for Dim Meelezer:
http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/Hier.png
In Feit Zaakverloop, a measurement called ‘# Handelingen’ was created using SUM_HANDELINGEN, with an aggregation rule of SUM.
In the LTS of both the DIM Meelezer and Feit Zaakverloop, the Logical Content Levels have both been set to: LVL Detail – Meelezer.
Please provide suggestions that will NOT require changes to the physical datamodel as they would require too much time to achieve (or at leats would not be ready before my deadline.
Thanks!
Edited by: The_Dutchman on Dec 13, 2011 11:43 AMHmm, no replies yet...
Am I in 'uncharted territory' with this issue? -
XREF3 field not getting populated in BSEG table while posting MIRO
Hi,
I have one query in MIRO tcode.I have activated xref3 field in MIRO tcode using enhancement LMR1MF6Q.Now when i try to post document with some values in xref3 field on screen ,value is not getting populated in BSEG table.Please tell me what else needs to be done to achieve this ?
any hint on this?
Thanks & Regards,
Soniya S.Hi,
1.- According to SAP Note 904652 - MIRO: Different from FB60
https://service.sap.com/sap/support/notes/904652
MIRO is an independent Materials Management (MM) transaction that does not
claim to be the same as the accounting transactions (such as FB60 or FB01).
MIRO was developed to allow users to process vendor invoices within the
context of the MM procurement processes as simply as possible.
For this reason, among other differences, the field selection was limited
to the absolutely necessary. For example, the following fields from the
accounting document are not available in Transaction MIRO (this list is not
complete):
Reference key (BSEG-XREF1, -XREF 2, -XREF 3)
2.- SAP Note 1156325 - BAdIs in the Logistics Invoice Verification environment
https://service.sap.com/sap/support/notes/1156325
Have a look at badi MRM_ITEM_CUSTFIELDS.
This badi will create a new tab at item level in order to display the new fields.
I haven´t used this badi so i cannot talk from experience here.
Think twice before deciding.
Best regards. -
3-1674105521 Multiple Paths error while using Bridge Table
https://support.us.oracle.com/oip/faces/secure/srm/srview/SRViewStandalone.jspx?sr=3-1674105521
Customer Smiths Medical International Limited
Description: Multiple Paths error while using Bridge Table
1. I have a urgent customer encounterd a design issue and customer was trying to add 3 logical joins between SDI_GPOUP_MEMBERSHIP and these 3 tables (FACT_HOSPITAL_FINANCE_DTLS, FACT_HOSPITAL_BEDS_UTILZN and FACT_HOSPITAL_ATRIBUTES)
2. They found found out by adding these 3 joins, they ended with circular error.
[nQSError: 15001] Could not load navigation space for subject area GXODS.
[nQSError: 15009] Multiple paths exist to table DIM_SDI_CUSTOMER_DEMOGRAPHICS. Circular logical schemas are not supported.
In response to this circular error, the developer was able to bypass the error using aliases, but this is not desired by client.
3. They want to know how to avoid this error totally without using alias table and suggest a way to resolve the circular join(Multiple Path) error.
Appreciated if someone can give some pointer or suggestion as the customer is in stiff deadline.
Thanks
TeikThe strange thing compared to your output is that I get an error when I have table prefix in the query block:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "SYSTEM"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_FULL_01": system/******** DUMPFILE=TMP1.dmp LOGFILE=imp.log PARALLEL=8 QUERY=SYSADM.TMP1:"WHERE TMP1.A = 2" REMAP_TABLE=SYSADM.TMP1:TMP3 CONTENT=DATA_ONLY
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
ORA-31693: Table data object "SYSADM"."TMP3" failed to load/unload and is being skipped due to error:
ORA-38500: Unsupported operation: Oracle XML DB not present
Job "SYSTEM"."SYS_IMPORT_FULL_01" completed with 1 error(s) at Fri Dec 13 10:39:11 2013 elapsed 0 00:00:03
And if I remove it, it works:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "SYSTEM"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_FULL_01": system/******** DUMPFILE=TMP1.dmp LOGFILE=imp.log PARALLEL=8 QUERY=SYSADM.TMP1:"WHERE A = 2" REMAP_TABLE=SYSADM.TMP1:TMP3 CONTENT=DATA_ONLY
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "SYSADM"."TMP3" 5.406 KB 1 out of 2 rows
Job "SYSTEM"."SYS_IMPORT_FULL_01" successfully completed at Fri Dec 13 10:36:50 2013 elapsed 0 00:00:01
Nicolas.
PS: as you can see, I'm on 11.2.0.4, I do not have 11.2.0.1 that you seem to use. -
Bridge Table between two fact tables
Hello everybody,
From what I have read on the BI Administration tool help and on this forum, bridge tables are used to define many-to-many relations between dimension sand fact tables. Is it possible to have a bridge table defining a many-to-many relation between two fact tables?
Here is my senario:
1. We have a fact table called fact_Orders describing orders for some products.
2. We have a fact table called fact_Sales describing sales og these products.
3. We have a table describing the transformation from order lines to sales lines which is a many-to-many relation, because it is possible to transform an order in more than two steps.
I was thinking of connecting the two fact tables with a bridge table.
If bridge tables are inappropriate for this case, what could be a better model for my senario?
Thanks for your time.Hi,
Well a conformed dimension is a bridge table between two facts, so not sure why you need anything else. If there is a one to many from D1 to F1 and a one to many from D1 to F2 then effectively there is a many to many join from F1 to F2 through the D1 dimension.
Sounds to me like all you need is an order dimension table, rows in the orders fact table will join to this dimension and so will rows in the sales fact table. You can then do calculations like number of sales per order, total sales revenue per order, # of order items per order etc etc.
Regards,
Matt -
Alternative of Bridge table in data Modelling.
Hello Gurus,
while doing the data modeling, we found one place where we have Many to Many joins between One Fact and 3 Dim.
where in Dim., we mostly have only one attribute/ Dim, which relates Many to Many with Fact.
so as in obiee we have to build the bridge table to take care of the issue.
is there any alternative method of data modeling that can eliminate the Bridge table itself?
I was thinking to add the dim attribute in fact itself. though it's with diff grain it should work??If you really have a many-to-many relationship from fact to dimension, which attribute value (which of the many) would you put on the fact?
What is the issue you are having with a bridge table? -
Hi,
I have a hashtable which contains a number of objects of my custom class.
I need the properties of these objects to be stored in a jTable, a row per object.
Could anyone offer me any help,
Anything will be very much apreciatedThe title of your post is "populating a hash table" but the first sentence suggests you have already populated the hash table and you want to get data out of it.
The elements() method gives you an Enumeration that allows you to extract the values from the Hashtable.
There's a tutorial here about how to use JTables: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html -
Hours not populated in the Table C1 (Cost Distribution) in Time Evaluation
Hi All,
I am entering Time info along with the Reciever Cost Center, Internal Order and other info in the CATS Time sheet and transferring the saved details to HR Time Mgmt & CO. Later when I run Time Evaluation (PT60 using schema TM00) for the person his Cost Distribution info is getting populated in the Table C1.
Then when I go to the Time Evaluation Results Table (B2 Cluster) thru transaction PT66 and want to check the details for the employee under C1. I see all the Reciever Cost Center, Internal Order info. I double click on the TReciver Cost Center to see how many hours getting charged to it, it shows 0.000
even thogh I had entered 4.00 hours against the Reciever Cost center in CATS.
Can someone direct me in a step by step way as to how to overcome this anamoly.
Your suggestions are highly welcome.
Regards,
AslamHi,
I hope you are using transaction CATA to transfer to HR and Controlling.
When you transfer entries from CATS to HR to which Infotype the hours get transfered?
Could you clarify me on this? -
OBI EE 10g: Bridge tables and Based on Dimensions Aggregation
hi experts,
i am working on OBI EE 10 g (10.1.3.4)
The BM&M layer consist of:
1) Logical fact table "Sale_Indicators"
Fields: SALE_ID (PK, FK),
D1_ID (FK),
D2_ID (FK),
Indicator1 (measure, level of granularity: SALE_ID),
Indicator2 (measure, level of granularity: SALE_ID),
Indicator3 (measure, level of granularity: SALE_ID)
2) Logical dimension table
"Sales" (PK: SALE_ID),
"D1" (PK: D1_ID),
"D2" (PK: D2_ID),
"Customers" (PK: SALE_ID, CUST_ID) - bridge table!
"Products" (PK: SALE_ID, PROD_ID) - bridge table!
3) Dimensions: SalesDim, D1Dim, D2Dim, CustomersDim, ProductsDim
If fact table is joined with bridge table, the number of rows in fact table is multiplied, for example:
D1_ID | SALE_ID | CUST_ID | Indicator1
777 | 1 | 14 | 10
777 | 1 | 17 | 10
777 | 2 | 15 | 12
888 | 3 | 16 | 20
888 | 3 | 17 | 20
888 | 4 | 19 | 30
I need to get report:
D1_ID | Indicator1 (SUM)
777 | 22
888 | 50
and with filter by customer, for example (CUST_ID = 17):
D1_ID | Indicator1 (SUM)
777 | 10
888 | 20
i am trying to use "based on dimension" aggregation, for example (Indicator1):
Dimension Formula
CustomersDim MIN
ProductsDim MIN
Others SUM
The generated physical SQL performs joining EVERY dimension to the fact table, even though they are not included in the final result set.
Is there any way to tweak logical or physical model in order to eliminate excessive joins?
Thanks in advance!
Edited by: 859688 on 31.10.2011 4:04
Edited by: 859688 on 31.10.2011 4:06
Edited by: 859688 on 31.10.2011 4:08I found this text on the help, but I didn't understand, because when I check the "based on dimensions" check box, I can choose aggregation rules for each dimension, not only the time dimension.
Also, I found in the help menu:
"In the Aggregation tab, select the Based on dimensions check box.
The Browse dialog box automatically opens.
In the Browse dialog box, click New, select a dimension over which you want to aggregate, and then click OK.
In the Aggregation tab, from the Formula drop-down list, select a rule."
I did the same steps suggested by the text above, but it didn't work. -
Who to make use of bridge table in the report
hi all,
I have two tales let us say T1 and T2, having may to may relation .. if i take the one column from T1 table and another column from T2 table in the report.. it is taking more time to generate. What is the problem, why they have interested Bridge table concept,
let us say i have created one bridge table,TB,, so that i need a report generate the report having columns from T1 and T2 that time how to use bridge table ?. pls let me know if any one knew it.
Thanks
RajHi,
Check this out. I'm not sure if itwould help, but it might: http://www.rittmanmead.com/2008/08/the-mystery-of-obiee-bridge-tables/
J. -
What is the use of bridge table in obiee
If any body replay me use of bridge table with scenario
which situation you can use it.An example of a bridge table I use frequently is w_gl_linkage_information_g . Pasted a sample query below:
SELECT APF.*
FROM w_gl_linkage_information_g GLI
,w_gl_other_f GLO
,w_ap_xact_f APF
WHERE GLI.journal_line_integration_id = GLO.integration_id
AND GLI.source_distribution_id = APF.acct_doc_id
AND GLO.etl_proc_wid = APF.etl_proc_wid;
AND GLO.integration_id = '4969904~2'; -
Hi,
I am having a little trouble using bridge tables. For testing I created an n-n relation. When I just make joins it shows the link table like fact table but queries work okay. When I check the bridge table check box, it identifies the correct fact and dimension tables, but I get a consistecy warning since one of the dimension tables does not join to any fact table and also querires don't work.
So how exactly should I use the bridge table, and also why do I need it?Hi,
Find the link below which might help you.
http://www.biblogs.com/2008/08/28/the-mystery-of-obiee-bridge-tables/
Regards,
Som -
Distinct Count Measure on Dimension table via Bridge table.
Hi Team,
I have Dim_Devices Table, which is linked to other dimension like Dim_User and Dim_City.
All these table has many to many relationship defined in bridge table i.e. B_Devices_User_City using referential keys.
I want to derive measure such as
Select Count(Dim_Devices[Device_Id])
where Dim_Devices.Validity_End_Date is null
Note : Device_Id and Validity_End_Date are present in Same Dim_Devices Dimension Table.
Could you please help me to define cube structure and how to create such measure out of dim_table.Hi Charlie,
Now, I have define DistinctCount Agreegation on Dim_Devices table which will use reference Relationship on B_Devices_User_City. My Count is correct.
But, I came across one more issue, i.e. From Processed and deployed cube, I am trying to create off-line Cube/or Global Cube (I have given syntax below) which is for limited set of dimensions and measures, I found that It shows me error due
to such relationship.
Does it mean that, For Global Cube, Can't we use DistinctCount/Count agreegation?
CREATE
GLOBAL CUBE [Device OLAP_Cube_1_3]
Storage
'C:\Exportcube.cub'
FROM [Device DATA CUBE]
-- Measures
-- Cube -
OBIEE Conformed dimension with Bridge Table
Hi,
I have an issue and tried all the links from Mark and Gerad regarding bridge tables. But probably this is a bit different.
I have to extend the OOB data model for OBIA - where the relationship between group account and gl account dimensions are 1 to many. In my case its many to many and hence bridge table.As this is not a standard customization, so posting this thread here.
Although its out of the box, a short description of the scenario.
Account Dimension levels -
total --->Group account---->Gl account
The logical table has two LTS - GL account and Group account forming a conformed dimension using column mapping.
Earlier(OOB) there was no join the physical layer between these tables ,as I had to use the Bridge table , so I joined these two with the bridge table in physical layer.
But the problem is, if I try to use standard technique to include the bridge table into the LTS of the group account table (i.e. Group account---->bridge<-------Gl account),
there is a problem of over counting ,as the group account level is also connected to summary fact tables - the query will include the bridge table and hence over count.
So my requirement is this -
When only Group account is selected it will hit the summary fact tables (content level is already set in OOB), but it shouldn't use the bridge table - so no overcount.
If we drill from Group account level or when Both Group account and Gl account is selected, it would use the bridge table and hit the detail fact table (content level is already set in OOB).
I am using OBIA 7963 with OBIEE11g.
This is the model - Summary facts <-------Group account ------>Bridge<-------Gl account-------->Detail Facts
Please help.
Regards,
Krish
Edited by: Krish on Aug 7, 2011 9:48 AM
Edited by: Krish on Aug 7, 2011 9:50 AMAnybody please any i/p?
-
Calc problem with fact table measure used as part of bridge table model
Hi all,
I'm experiencing problems with the calculation of a fact table measure ever since I've used it as part of a calculation in a bridge table relationship.
In a fact table, PROJECT_FACT, I had a column (PROJECT_COST) whose default aggregate was SUM. Whenever PROJECT_COST was used with any dimension, the proper aggregation was done at the proper levels. But, not any longer. One of the relationships PROJECT_FACT has is with a dimension, called PROJECT.
PROJECT_FACT contains details of employees and each day they worked on a PROJECT_ID. So for a particular day, employee, Joe, might have a PROJECT_COST of $80 for PROJECT_ID 123, on the next day, Joe might have $40 in PROJECT_COST for the same project.
Dimension table, PROJECT, contains details of the project.
A new feature was added to the software - multiple customers can now be charged for a PROJECT, where as before, only one customer was charged.
This percentage charge break-down is in a new table - PROJECT_BRIDGE. PROJECT_BRIDGE has the PROJECT_ID, CUSTOMER_ID, BILL_PCT. BILL_PCT will always add up to 1.
So, the bridge table might look like...
PROJECT_ID CUSTOMER_ID BILL_PCT
123 100 .20
123 200 .30
123 300 .50
456 400 1.00
678 400 1.00
Where for project 123, is a breakdown for multiple customers (.20, .30. .50).
Let's say in PROJECT_FACT, if you were to sum up all PROJECT_COST for PROJECT_ID = 123, you get $1000.
Here are the steps I followed:
- In the Physical layer, PROJECT_FACT has a 1:M with PROJECT_BRIDGE as does PROJECT to PROJECT_BRIDGE (a 1:M).
PROJECT_FACT ===> PROJECT_BRIDGE <=== PROJECT
- In the Logical layer, PROJECT has a 1:M with PROJECT_FACT.
PROJECT ===> PROJECT_FACT
- The fact logical table source is mapped to the bridge table, PROJECT_BRIDGE, so now it has multiple tables it maps to (PROJECT_FACT & PROJECT_BRIDGE). They are set for an INNER join.
- I created a calculation measure, MULT_CUST_COST, using physical columns, that calculates the sum of the PROJECT_COST X the percentage amount in the bridge table. It looks like: SUM(PROJECT_FACT.PROJECT_COST * PROJECT_BRIDGE.BILL_PCT)
- I brought MULT_CUST_COST into the Presentation layer.
We still want the old PROJECT_COST around until it get's phased out, so it's in the Presentation layer as well.
Let's say I had a request with only PROJECT_ID, MULT_CUST_COST (the new calculation), and PROJECT_COST (the original). I'd expect:
PROJECT_ID MULT_CUST_COST PROJECT_COST
123 $1000 $1000
I am getting this for MULT_CUST_COST, however, for PROJECT_COST, it's tripling the value (possibly because there are 3 percent amounts?)...
PROJECT_ID MULT_CUST_COST PROJECT_COST
123 $1000 (correct) $3000 (incorrect, it's been tripled)
If I were to look at the SQL, it would have:
SELECT SUM(PROJECT_COST),
SUM(PROJECT_FACT.PROJECT_COST * PROJECT_BRIDGE.BILL_PCT),
PROJECT_ID
FROM ...
GROUP BY PROJECT_ID
PROJECT_COST used to work correctly before modeling a bridge table.
Any ideas on what I did wrong?
Thanks!Hi
Phew, what a long question!
If I understand correctly I think the problem lies with your old cost measure, or rather combining that with you new one in the same request. If you think about it, your query as explained above will bring back 3 rows from the database which is why your old cost measure is being multiplied. I suspect that if you took it out of the query, your bridge table would be working properly for the new measure alone?
I would consider migrating your historic data into the bridge table model so that you have a single type of query. For the historic data each would have a single row in the bridge with a 1.0 BILL_PCT.
Best of luck,
Paul
http://total-bi.com
Maybe you are looking for
-
Would like to use 4nr iPads as an autocue system. Can I view the same pdf on multiple iPads at the same time with 1 iPad operating as the master (controlling page turns etc) and the others operating as slaves? Can this be done without the use of 3G o
-
S.M.A.R.T. status message-what is this?
S.M.A.R.T. status changed messsage appeared on desktop. What does this mean?
-
Hi All I am producing some exhibition panels and our printer would like the crop marks actually on the image. When I export to PDF the crop marks appear in a white area around the image - is there any way I can remove that white area and show the cro
-
Overlaping buttons problem (AS 3.0)
When you have two buttons that end up one on top of the other, is there a way to tell it to disregard the one at the bottom and just use the top one. This is what's going on: I have a stage that has an image with "hotspots" (invisible buttons all ove
-
Hello Experts, Currently we are in SRM 7.02 implementation, for this we got requirement like below. In Requestor POWL, Shopping cart related/follow on documents should display as columns in POWL. Please suggest me on this, how can i achieve this requ