Circular joins in 11g

Hi Gurus,
I am working on 10g...In obiee there is no support for circular joins,if we do also consistency check will give us a Error..so I want to know is it Solved in 11g or is there any alternative provided in 11g to achieve circular join type of condition?please share your thoughts/information you have..
Thanks in Advance...

Hi,
Circular joins should not be used and its not a best practice, no matter the version of the tool.
Its always good to avoid them and use alias table to avoid them.
You might have got lots of stuff but also do refer below link to avoid:
http://www.rittmanmead.com/2008/08/resolving-fan-traps-and-circular-joins-using-obiee/
Hope this helped.
Regards
MuRam

Similar Messages

  • Multiple Fact Tables or Circular Joins?

    I'm using OE schema to build an rpd, I'm importing foreign keys and I'm unable to decide which tables to be joined additional to the imported foreign key joins. If I'm not making any new joins I'm getting multiple fact tables and if I do make some joins I'm getting circular joins, some one please throw some light on this.

    It is not a good idea to bring the OE schema tables as it is. The ideal approach would be to create a view that would represent the Fact table. For e.g this view could comprise of OE headers and OE line information and the reference id to the other dimensions.<br>
    <br>
    Similarly create views from customer table, item tables etc and then create a star schema surrounding the fact view with all these dimension views.<br>
    <br>
    -Nilesh<br>
    Dashboard Development

  • Circular Joins in OBIA

    Hello Gurus,
    I have created a logical model where I am using conformed dimensions for reporting on multiple facts withing that Business Model.
    So lets say I have two dimensions Dim - Work Order and Dim - Company and I have two facts Fact - GL and Fact - SLA
    Fact GL is joined to Dim - Work Order and Dim - Company also does the Fact SLA in both physical and logical.
    I have created two Presentation subject areas and called it GL Analytics and SLA Analytics and put my respective GL and SLA facts and thier dims.
    When I try to pull the columns only from by dimensions Work Order Number from Dim- Work Order and Company Name from Dim - Comapany, even though these are joined to Fact -SLA table OBIEE is issuing qeury to Fact - GL instead. So I can sense a circular join problem here. I can see only results from one Company Name but not Work order number in the analysis.
    However in the BI Apps OOTB data model. I consider AP - Posted Transactions , AR - Posted Transactions with Dim - GL Account(Segment 1) and Dim - GL Company ( semgment 2) they to have a similar join. However when I query only dims Account number and Company name I get results for both and the query send joins to correct table W_AP_XACT_F and joins these dim tables.
    What am I doing wrong here.
    could someone please help me out.
    Thanks in advance.
    VidyaS

    Hi VidyaS,
    In the properties of your presentation subject area, you could specify an implicit fact column:
    For each subject area in the Presentation layer, you can set an implicit fact column. The implicit fact column is added to a query when it contains columns from two or more dimension tables and no measures. The column is not visible in the results. It is used to specify a default join path between dimension tables when there are several possible alternatives or contexts.
    Hope it helps,
    Benoit

  • Circular Join in BMM Layer

    Hi,
    There are few dimension tables in my BMM Layer which is joined to every other table. I get circular joins error at this point. I tried duplicating the logical tables and avoided the circular schema. It always showed my an error.
    Please guide me.
    Thanks in Advance
    Edited by: 914981 on Feb 16, 2012 5:43 AM

    Hi,
    Eliminate all circular joins (intra-dimensional circular joins) in a logical table source in the Physical Model by creating physical table aliases.
    For example, say you have a Customer table that can be used to look up
    ship-to addresses, and using a different join, to look up bill-to addresses.
    Avoid the circular joins by aliasing the table in the Physical layer so that there is one instance for each purpose, with separate joins.
    If its the same dimension table, make an alias on the dim for each different join you want to use and model them as seperate logical tables in the BMM.
    Also refer thread for good understanding:
    Re: Obiee - physical layer
    Regards,
    MuRam

  • Circular Joins

    How to overcome the problem of "Multiple Path exist between 2 dimension" "Circular Joins are not supported"
    Ex: A--> B, C and B--> C

    Please find below a small example:
    Circular join:
    Countries --> Customers
    Countries --> Sales
    Customers --> Sales
    Solution with aliases:
    Countries_Customers --> Customers
    Countries --> Sales
    Customers --> Sales
    Other typical use of aliases is where you use a physical table for different meanings. For example countries might link to both the customer country and the country of the sales office.

  • Problem with XMLTABLE and LEFT OUTER JOIN

    Hi all.
    I have one problem with XMLTABLE and LEFT OUTER JOIN, in 11g it returns correct result but in 10g it doesn't, it is trated as INNER JOIN.
    SELECT * FROM v$version;
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
    PL/SQL Release 11.2.0.1.0 - Production
    "CORE     11.2.0.1.0     Production"
    TNS for Linux: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    --test for 11g
    CREATE TABLE XML_TEST(
         ID NUMBER(2,0),
         XML XMLTYPE
    INSERT INTO XML_TEST
    VALUES
         1,
         XMLTYPE
              <msg>
                   <data>
                        <fields>
                             <id>g1</id>
                             <dat>data1</dat>
                        </fields>
                   </data>
              </msg>
    INSERT INTO XML_TEST
    VALUES
         2,
         XMLTYPE
              <msg>
                   <data>
                        <fields>
                             <id>g2</id>
                             <dat>data2</dat>
                        </fields>
                   </data>
              </msg>
    INSERT INTO XML_TEST
    VALUES
         3,
         XMLTYPE
              <msg>
                   <data>
                        <fields>
                             <id>g3</id>
                             <dat>data3</dat>
                        </fields>
                        <fields>
                             <id>g4</id>
                             <dat>data4</dat>
                        </fields>
                        <fields>
                             <dat>data5</dat>
                        </fields>
                   </data>
              </msg>
    SELECT
         t.id,
         x.dat,
         y.seqno,
         y.id_real
    FROM
         xml_test t,
         XMLTABLE
              '/msg/data/fields'
              passing t.xml
              columns
                   dat VARCHAR2(10) path 'dat',
                   id XMLTYPE path 'id'
         )x LEFT OUTER JOIN
         XMLTABLE
              'id'
              passing x.id
              columns
                   seqno FOR ORDINALITY,
                   id_real VARCHAR2(30) PATH '.'
         )y ON 1=1
    ID     DAT     SEQNO     ID_REAL
    1     data1     1     g1
    2     data2     1     g2
    3     data3     1     g3
    3     data4     1     g4
    3     data5          Here's everything fine, now the problem:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
    PL/SQL Release 10.2.0.1.0 - Production
    "CORE     10.2.0.1.0     Production"
    TNS for HPUX: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    --exactly the same environment as 11g (tables and rows)
    SELECT
         t.id,
         x.dat,
         y.seqno,
         y.id_real
    FROM
         xml_test t,
         XMLTABLE
              '/msg/data/fields'
              passing t.xml
              columns
                   dat VARCHAR2(10) path 'dat',
                   id XMLTYPE path 'id'
         )x LEFT OUTER JOIN
         XMLTABLE
              'id'
              passing x.id
              columns
                   seqno FOR ORDINALITY,
                   id_real VARCHAR2(30) PATH '.'
         )y ON 1=1
    ID     DAT     SEQNO     ID_REAL
    1     data1     1     g1
    2     data2     1     g2
    3     data3     1     g3
    3     data4     1     g4As you can see in 10g I don't have the last row, it seems that Oracle 10g doesn't recognize the LEFT OUTER JOIN.
    Is this a bug?, Metalink says that sometimes we can have an ORA-0600 but in this case there is no error returned, just incorrect results.
    Please help.
    Regards.

    Hi A_Non.
    Thanks a lot, I tried with this:
    SELECT
         t.id,
         x.dat,
         y.seqno,
         y.id_real
    FROM
         xml_test t,
         XMLTABLE
              '/msg/data/fields'
              passing t.xml
              columns
                   dat VARCHAR2(10) path 'dat',
                   id XMLTYPE path 'id'
         )x,
         XMLTABLE
              'id'
              passing x.id
              columns
                   seqno FOR ORDINALITY,
                   id_real VARCHAR2(30) PATH '.'
         )(+) y ;And is giving me the complete output.
    Thanks again.
    Regards.

  • Error: 38015, Physical tables have multiple joins.

    Hi,
    I have 5 dimensions and 1 fact table. One of the dimension table have 2 keys, which are referenced with fact table.
    I have created aliases for all table on which I have defined joins.
    But, It is giving me error like
    ERRORS:
    GLOBAL:
    *[38015] Physical tables "obidb".."ORDER_DETAILS"."FACT" and "obidb".."ORDER_DETAILS"."BILLING_ACCOUNT" have multiple joins.*
    Delete new foreign key object if it is a duplicate of existing foreign key.
    Please give me any suggestions.....
    Thanks.

    Hi,
    Did your deleted existing foreign key before joining the alis_dim1(fk1), dim1(fk2) to fact join?
    double check u r model its comes like circular join so by using alias method u r can resolve that issue.
    In your model just check all your FK relation ship here u can find FK ending with #1 (double time just delete them and check metadata consitancey) if its not working delete the dimension and import it newly then create alias of the dim then join each other required fact also check below link
    http://mtalavera.wordpress.com/2012/03/29/obieerpd-fails-global-consistency-on-joins-between-tables/
    Thanks
    Deva
    Edited by: Devarasu on Nov 23, 2012 4:44 PM

  • Oracle BI Joins

    Hi all,
    I have two tables and there is no direct join between them in physical or logical layer, but there is a few indirect joins through a few tables.
    When I put these tables in one report in presentation services, it doesn't give an error. From query log I can see that it joined these tables one using one of tables between. What I want to understand is how it decides the join. If there is more then one path between tables how it decides to go.

    Hi seth2,
    I think if you have more than one way to go in you table, then OBIEE will produce an error.
    It is recommended that you use table aliases frequently to eliminate extraneous joins, including the following:
    * Eliminate all physical joins that cross dimensions (inter-dimensional circular joins) by using aliases.
    * Eliminate all circular joins (intra-dimensional circular joins) in a logical table source in the Physical Model by creating physical table aliases.
    Come from here : http://download.oracle.com/docs/cd/E12103_01/books/admintool/admintool_RepositorySetup7.html
    If you have more than one logical table source in the business model layer then obiee will choose the table which have the lowest grain defined. Obiee call this an Aggregate Navigation :
    http://gerardnico.com/wiki/dat/obiee/bi_server/design/fact_table/obiee_query_rewrite
    Regards
    Nico

  • Doubt regarding joins in obiee

    hi gems...
    i have a doubt regarding BI analytics join.
    When i have imported all the tables from my schema in the repository, then it got imported with all the joins defined in the database.
    then i made several business models and create some reports.
    there i got some errors, which are mainly due to self join in the tables and more than one joins between two tables.
    my question is...are these two types of joins not supported in obiee???
    and if i want more than one join condition between two tables, then what can i do???
    thanks in advance...

    Hi User,
    OBIEE doesnot support self join. To avoid such circular joins ,make use of alias tables in the physical layer.The following is a list of the main reasons to create an alias table:
    To reuse an existing table more than once in your physical layer (without having to import it several times.
    To set up multiple alias tables, each with different keys, names, or joins.
    To help you design sophisticated star or snowflake structures in the business model layer. Alias tables are critical in the process of converting ER Schemas to Dimensional Schemas
    Rgds,
    Dpka

  • 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
    Teik

    The 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.

  • Patch in obiee 11.1.1.6.0

    The action link reports is not opening in new window for obiee 11.1.1.6.0 . What patch should I apply in order to fix this? I do not want to upgrade to obiee 11.1.1.6.2 right now. I want to confirm if patch 14003822 will fix this bug.
    Thanks,
    Sanjay

    When I check for the patch 14003822 in the oracle support, it did not mentioned about the Bug 14165667 - LINKED REPORT OPEN IN NEW WINDOW DOES NOT WORK AFTER A CHANGE PROMPT bugs that has been resolved. The list of bugs that have been resolved from the patch are as follows;. Do I need to upgrade to obiee 11.1.1.6.1 or just if we use this patch it will solve this issue.
    Thanks,
    Bugs Resolved by This Patch
    10647655     COLUMN DATA FORMAT IS IGNORED ON WRITEBACK
    12612904     TOTAL PICKS VALUE IN FIRST ROW AND GIVES NOT A NUMBER WHEN AVERAGING NULL
    12978196     COLUMN SELECTOR DOES NOT PASS VALUES FROM SUMMARY REPORT TO DETAILED REPORT
    12981896     MAPVIEWER HOVER TOOLTIPS SHOW WRONG VALUES
    12992697     PAGE BREAK WITH COLUMN BREAK DOES NOT WORK IN PRINTABLE HTML
    13043745     PIVOT TABLE'S LAYOUT COLLAPSES WHEN HIDDEN ROW AND TOTALS BEFORE IS USED
    13071711     CIRCULAR JOIN ERROR WHEN RUNNING ANALYSIS USING UPGRADED REPOSITORY
    13083074     PROMPTS CREATING UNSPECIFIED ERROR WHEN SELECTING MULTIPLE CONSTRAINED CRITERIA
    13098323     AN ARITHMETIC OPERATION IS BEING CARRIED OUT ON A NON-NUMERIC TYPE
    13110980     THE SECTION PROPERTIES OF PIVOT TABLE IS NOT EFFECTIVE OR NOT CORRECT
    Open Readme to View all Bugs
    Related Knowledge to this Patch
    1470402.1     OBIEE 11g: Unable to See Column Added to Pivot View in Criteria Tab when Graph has been Added to Results     Modified 07/01/2012
    1467168.1     MULTIPLE PIE CHARTS DISPLAYED FOR PIVOT TABLE REPORT WHEN SHOULD BE ONE     Modified 06/12/2012
    1465324.1     OBIEE 11g: Cannot Edit Position of a Chart in Charted Pivot Tables     Modified 07/24/2012

  • Add values across multiple subject areas

    Hello Everyone,
    This is a pressing issue i am facing at the moment. I am on OBIEE 11g latest version.
    This is the scenario at hand.
    There are several tables of which each connects to the same time dimension and a global customer dimension. There are several products such as deposits, loans, pawning, leases, etc.
    For the time being, i have created separate subject areas for each of these products. And each subject area has an INCOME column.
    The requirement is to get the total of all the income columns from all the subject areas so that that total can be used for other calculations.
    The most probable solution from my R&D seems to be trying to add several subject areas for querying purposes. (Add / Remove Subject Areas option)
    In the RPD, right clicked on the deposits subject area and clicked on the option "... star or snowflake schema". This created a copy of the subject area on the BMM and added it on to the presentation layer. Now in thr analysis, choosing deposits, i click on the Add / Remove Subject Areas. The option has the newly created copy of the subject area i already have.
    My requirement is to add deposits and loans and pawning and etc.... What am i doing wrong here?
    Also, is there any other method to approach the problem?

    Let me try to describe the model as best as possible.
    I am trying to calculate the profitability of each customer for two banks. These banks have deposits, loans, leases, etc. Each customer is identified by a global id. The global ID is a dimension table. Then there is a the time Dimension.
    Bank A has it's own deposits and Bank B does too. A customer can/cannot have accounts in Bank A/Bank B/or Both Bank A and B. Similarly a customer can have a lease in either or both of the banks and this continues for other products.
    Each Global ID is referenced to a Client ID. Each client ID can have several Internal Keys which are referenced to each account the customer might have.
    For bank A > deposits, i have a fact table which connects to the Dim Time and Dim Global customer table. there are other dimension tables which connect to the same fact.
    Similarly bank B > deposits has the same look and feel. Only thing is i connected the fact of bank b - deposits to the same Time and Global Customer table. So now there is a circular join. And this join gets really complicated when i add the fact tables of other categories such as leasing, pawning, etc. Since my goal is to calculate the total of profitability from each of these categories (deposits + loans + pawning +...), i tried to write a formula but i do get the error that "no fact exists"
    For the time being i have created individual connections for each product. For example, deposits will have its own global customer and time and be connected to that particular fact. Similarly, pawning will have its own global customer and time (created alias tables for each of them). So right now i have the profitability of each customer on different categories.
    What i want to do is get the total of profitability for an individual customer for all the product type the customer has, and use that for further specific formula calculations.

  • Navigate from report to dashboard and  pass values between different column

    Hello
    I have a question about navigating from 1 report to a dashboard page while passing the value from column 1 to column 2 in the second report...
    In OBIEE 11G, I create action link on report 1, column 1 and this action link is navigate to BI Content and the destination is a dashboard page, which has column 2 used as dashboard prompt and there are 3 reports all use column 2 to filter. Now the column 2 in the dashboard page is an alias of column 1 from report 1, from user's point of view they are the same, but from OBIEE point of view they are different.
    My action link is able to navigate to dashboard, however, the value in column 1 which I clicked to execute the navigation, does not get passed to column 2 as the dashboard prompt doesn't get this value upon navigation..
    Since I can't put column 1 in dashboard 2 nor can I put column 2 in report 1. Because our data model is done in the way that if I use column 1 or column 2 in both places, it will be circular joins...
    Is there a way around this issue?
    Let me know if I need to provide more clarification
    Thanks

    Sid
    Here is the thing..
    Let's say we have Dimension 1, dimension 2 and fact 1 and fact 2
    In one report, you need to show Dimension 2 and fact 1 so Dimension 2 joins to fact 1.
    In some other cases, you need to shown dimension 1 and fact 2 stuffs, but dimension 1 can't get to fact 2 without going through dimension 2. So Dim 1 --> Dim 2 --> Fact 2
    Then in some other cases, you need to show Dim 1 and Fact 1 reports..
    In means, your model will look at:
    Dim1 --> DIm2 and Dim 1 --> Fact 1 and Dim 2 --> Fact 1.. This is just a simpler version of a much more complex model that I am dealing with now..
    So in this case, you can't just use Dim 1 attributes across the board. For some dashboards, you will have to create alias of Dim 1, call it A1_Dim1, un-join Dim1 with Dim 2 or to fact 1 to avoid circular joins... Then in different reports, you either use columns from Dim 1 or A1_Dim1..
    Now Dim1 and A1_DIM1 are really the same thing, but they are not according to OBIEE...
    So my problem is, in report 1 where Dim1 is used, it can't past values to Dashboard 2 where A1_DIM1 is used as dashboard prompt..
    I want to know if there is a way around this issue
    Hope this makes more sense now
    Thanks

  • Why Do we need to go for Alias? What are the Different uses of Aliases?

    Hello Everybody?
    I wanted to know the uses of aliases in RPD level. I do know some points like they will be used as a duplicate copy for the base tables and they will be used to remove the circular joins, otherthan this can anybody please give me a brief view about the different uses of Aliases.

    This article gives some good arguments for why you should use aliases:
    http://it.toolbox.com/blogs/achieving-great-bi/physical-layer-tips-and-gotchas-16445
    1. Import physical tables without FK joins turned on. Make the joins yourself, so there is nothing hidden that could cause problem. You should "own" your joins, not the other way around.
    2. Aliases are the technique one uses to eliminate circular joins. An easy example of how to use aliases is when you have a lookup table, like W_LOV_D - each version of it requires an alias, which will be joined to differently.
    3. With all tables & aliases, using a naming standard will guarantee that only one physical layer object will exist in one Business Model object. If you prefix every object in the physical layer with its Logical usage first (essentially making everything an alias), you will not be able to use the Customer (W_COUNTRY_D) table in the Employee logical table, as the standard would require you to use a table alias called Employee (W_COUNTRY_D).

  • XML diff in XML DB

    Hey All,
    Is there a mechanism for getting a diff of XMLTypes/documents in XML DB? Or is the best bet to make/load in my own implementation? Obviously, I don't want to reinvent the wheel if I don't have to.
    Thanks
    Tim

    Nothing in the current release :(...
    However if you are interested in joining the 11g Beta program we might be able to help.
    http://forums.oracle.com/forums/ann.jspa?annID=281

Maybe you are looking for

  • Here we go again- 3g AND Edge data problems - NYC area

    Just great.... been having great 3G data speeds for the past several weeks (after the data outage) and since last night (10/12) I cannot get a page to load. Sometimes it doesn't load at all, other times it takes about 5 minutes. What the heck is goin

  • Can't register my serial number with Apple

    I just tried to lookup express support and had to enter my serial number. Website says SN is invalid. I then tried registering my Mac Book Pro (I just bought it about 2 weeks ago) and got the same error that SN is invaid. Short of calling Apple 1-800

  • TestStand create different object for singleton class

    Hi all, we have a singleton class which has some functions used to do testing a harware. Our main Exe will create an object for that singleton class(which opens Com1 port and communicate with hardware). so the Exe will do basic communication test wit

  • IPhone stolen! Cant access my iCloud ID!

    My iPhone has been stolen. I accessed my icloud ID and ran FIND MY IPHONE but my phone was offline. I changed the password of my ID and now when I access it, it says that your ID must be used to setup icloud on ios device before you can use icloud.co

  • How to read Java Object message from JMS Queue using JMS Adapter .

    Dear All, In my scenario i have to read a java object message from JMS Queue . I tried by using the JMS Adaper ,but i am not getting any Payload . Can any one tell me is there any special settings for JMS Adapter to read the Java Object message . I a