Complex Join

Hi,
Why we use complex Join in Physical Layer?

Hey Apart from regular joins, we can write a complex join conditions using experssions.
http://obinsight.blogspot.com/2010/05/understanding-complex-join-and-physical.html

Similar Messages

  • What is the different between Logical complex join and Physical join?

    hi,
    Do somebody know what is the function different between logical complex join in BMM layer and physical join in physical layer?
    Thanks.

    Thank you very much1
    I understand their differentiation:
    In the BMM Complex join (intelligent), means OBI picks the best way from possibly many different ways to join using physical join. FK join forces the same join always, which limits flexibility.

  • Designer - complex join not displayed correctly

    Post Author: Jon80
    CA Forum: General Feedback
    I've created a complex join as part of a tutorial for aggregate aware tables.  So I've created a complex join as follows within the e-fashion universe:
    Calendar_year_lookup.Yr=Agg_yr_qt_mt_mn_wk_rg_cy_sn_sr_qt_ma.Yr and Calendar_year_lookup.Week_In_Year=Agg_yr_qt_mt_mn_wk_rg_cy_sn_sr_qt_ma.Wk
    When selecting Detect, the cardinality detected is many-to-many.  Is it bad practice in this case?  Does it have to be resolved?
    It is noted that when I edit the join (e.g. double click the join), the cardinality that was previously detected is not shown within the Edit Join dialog.  Why?
    Then I try to create a context for this join, however at this stage it is noted that within the formula bar and within the New Context dialog the join is not displayed as it is expected, hence misleading to the designer:
    Calendar_year_lookup.Yr=Calendar_year_lookup.Week_In_Year=Agg_yr_qt_mt_mn_wk_rg_cy_sn_sr_qt_ma.Wk
    It would be helpful if the formula bar and the New Context dialog could accomodate the two lines created.
    As a matter of fact when I do copy and paste the join is pasted, as expected, i.e. how I have updated it previously:
    Calendar_year_lookup.Yr=Agg_yr_qt_mt_mn_wk_rg_cy_sn_sr_qt_ma.Yr and Calendar_year_lookup.Week_In_Year=Agg_yr_qt_mt_mn_wk_rg_cy_sn_sr_qt_ma.Wk
    Reference: Business Objects XI - The Complete Reference 2nd Ed pg.250

    Hello,
    most recent patches for IGS and kernel installed. Now it works.

  • OBIEE 11g - complex join in physical layer

    Hi, I need to create a complex join in the physical layer with join criteria like the following:
    fact.fiscal_year = dim.fiscal_year and fact.accounting_period <= dim.accounting_period
    Every time I try to do this, I get the nQSError: 37005 Transaction Update Failed message. Any ideas what is going on?
    Thanks,
    Scott

    Actually, I (finally) got it to work - wow logical joins are a big pain in the butt in 11g. First off, I had to edit the RPD offline, couldn't get it to work (at all) online.
    Next I had to delete the existing joins...there appears to be no way to change an existing FK join into a logical join.
    Next created the logical joins as stated in my original post - but had to fiddle with it for about 15 minutes to get it to work. You can NOT click the two columns on the dim side, two columns on the fact side, and then just edit the default formula (which defaults to have = sign between the expressions) - because it creates a FK join, and then you start getting errors. Instead, I had to build the expression from scratch.
    All in all, 11g has gotten much less flexible and easy to use in this regard.
    Scott

  • A complex join . Please help

    I have a complex join to perform.
    I need some help please.
    I have a table call Table A
    TableA
    id_entity    inst_type     inst_code  dt_trade
    AGL          SE              5660249    01 Feb '06
    AGL          SE              5660249    01 Feb '06
    AGL          SE              5660249    05 Feb '06
    TableB
    id_inst                 id_inst_xref
    0029010          SE     5660249
    0070789          SE     5660249
    0071190          SE     5660249
    0072385          SE     5660249
    0073215          SE     5660249
    0084797          SE     5660249
    0091375          SE     5660249
    Table C
    id_inst     id_isin
    0029010     FR0000120172
    0070789         FR0000120172
    0071190     FR0000120172
    *** All the id_inst in TableC have the same id_isinAll the 3 Tables now have to be linked to together such that
    Output
    id_entity    Inst_code   id_isin         dt_trade    count
    AGL          5660249     FR0000120172    01 Feb '06  2
    AGL          5660249     FR0000120172    02 Feb '06  1What I am doing is
    Select ta.id_entity,ta.id_inst_code,ta.dt_trade,tc.id_isin,count(*)
    from  TableA ta,TableB tb,TableC tc
    where ta.id_entity = 'AGL'    and
          ta.inst_code       = (How do I get the id_inst from TableB)
                                and then use the id_inst from TableB
                                to get the id_isin from TableC)
    group by ta.id_entity,ta.id_inst_code,ta.dt_trade,tc.id_isin
    Can I say :
    Select ta.id_entity,ta.id_inst_code,ta.dt_trade,tc.id_isin,count(*)
    from  TableA ta,TableB tb,TableC tc
    where ta.id_entity = 'AGL'    and
          ta.inst_code = (Select distinct tb.id_inst
                          from tableB tb
                          where tb.id_inst_xref = ta.id_inst_code
                          ) and then link the id_inst from here to TableC ang get the id_isin??Can someone please help.??

    I had a bit of a go at writing the query but I don't quite understand the data. Here is what I tried.
    jeff@ORA10GR2> create table tablea
    2 (id_entity varchar2(3)
    3 ,inst_type varchar2(3)
    4 ,inst_code number
    5 ,dt_trade date);
    Table created.
    jeff@ORA10GR2>
    jeff@ORA10GR2> insert into tablea values ('AGL', 'SE', 5660249, to_date('20060201','YYYYMMDD'));
    1 row created.
    jeff@ORA10GR2> insert into tablea values ('AGL', 'SE', 5660249, to_date('20060201','YYYYMMDD'));
    1 row created.
    jeff@ORA10GR2> insert into tablea values ('AGL', 'SE', 5660249, to_date('20060205','YYYYMMDD'));
    1 row created.
    jeff@ORA10GR2>
    jeff@ORA10GR2> create table tableb
    2 (id_inst number
    3 ,inst_type varchar2(3)
    4 ,id_inst_xref number);
    Table created.
    jeff@ORA10GR2>
    jeff@ORA10GR2> insert into tableb values (0029010, 'SE', 5660249);
    1 row created.
    jeff@ORA10GR2> insert into tableb values (0070789, 'SE', 5660249);
    1 row created.
    jeff@ORA10GR2> insert into tableb values (0071190, 'SE', 5660249);
    1 row created.
    jeff@ORA10GR2> insert into tableb values (0072385, 'SE', 5660249);
    1 row created.
    jeff@ORA10GR2> insert into tableb values (0073215, 'SE', 5660249);
    1 row created.
    jeff@ORA10GR2> insert into tableb values (0084797, 'SE', 5660249);
    1 row created.
    jeff@ORA10GR2> insert into tableb values (0091375, 'SE', 5660249);
    1 row created.
    jeff@ORA10GR2>
    jeff@ORA10GR2> create table tablec
    2 (id_inst number
    3 ,id_isin varchar2(20)
    4 );
    Table created.
    jeff@ORA10GR2>
    jeff@ORA10GR2> insert into tablec values (0029010, 'FR0000120172');
    1 row created.
    jeff@ORA10GR2> insert into tablec values (0070789, 'FR0000120172');
    1 row created.
    jeff@ORA10GR2> insert into tablec values (0071190, 'FR0000120172');
    1 row created.
    jeff@ORA10GR2>
    jeff@ORA10GR2>      select tb.id_inst_xref, tc.id_isin
    2      from tableb tb, tablec tc
    3      where tb.id_inst = tc.id_inst;
    ID_INST_XREF ID_ISIN
    5660249 FR0000120172
    5660249 FR0000120172
    5660249 FR0000120172
    jeff@ORA10GR2>
    jeff@ORA10GR2> select ta.id_entity,ta.inst_code,ta.dt_trade,dt.id_isin,count(*)
    2 from tablea ta,
    3      (select tb.id_inst_xref, tc.id_isin
    4      from tableb tb, tablec tc
    5      where tb.id_inst = tc.id_inst) dt
    6 where ta.inst_code = dt.id_inst_xref
    7 group by ta.id_entity,ta.inst_code,ta.dt_trade,dt.id_isin;
    ID_ INST_CODE DT_TRADE ID_ISIN COUNT(*)
    AGL 5660249 05/FEB/06 FR0000120172 3
    AGL 5660249 01/FEB/06 FR0000120172 6
    jeff@ORA10GR2>
    jeff@ORA10GR2> drop table tablea;
    Table dropped.
    jeff@ORA10GR2> drop table tableb;
    Table dropped.
    jeff@ORA10GR2> drop table tablec;
    Table dropped.
    jeff@ORA10GR2>
    jeff@ORA10GR2> spool off

  • RE: Complex Join

    Hi Experts,
    I have few questions regarding complex joins
    1> First when we import the tables into the Physical layer we will do the FK Joins for the tables according to our requirement then in BMM layer we will create new business model next again why we have to make complex join in BMM layer already there is joins between the tables in physical layer which scenarios we have to make the Complex join if we won't do the complex join what will happens.
    2> Also if we do FK join in the place of complex join in BMM layer what will be the result.
    Thanks in Advance,

    Hi,
    we have two joins in OBIEE one is foreign key join and other one is complex join.Mostly 99% cases we use foreign key join in physical layer.we use complex join in phycical layer mostly in three scenarios.
    1)when there is extended join conditions.
    2)when we join key column of one table to non key column of other table.
    3)when the operator is other than equal to operator.
    In these 3 situations we can use complex join in physical layer.
    Next one is we have already joins in physical layer then what is the need to create complex joins in BMM layer right.
    The answer for this question is whenever user runs a report that will generate logical sql query our OBIEE understands only logical sql query this logical sql query generated based on the logical joins in BMM layer.
    Based on this logical joins only it will create most optimized sql query.And another reasons for creating logical joins is
    if we want to specify driving table it is possible only thriugh complex join in BMM layer.
    and if we want to specify type of join it is possible only thriugh complex join in BMM layer
    and if we want to specify cordinality it is possible only thriugh complex join in BMM layer
    and another one is my tool is not able to identify facts and dimensions because it has no intelligence,we need to incorporate the intelligence by giving logical joins only it identifies the facts and dimensions.
    so we have to create logical joins in BMM Layer..
    Give me Like,,if you aresatisified with my post.
    Thanks,
    Sai Pelluri

  • Reg Complex Join

    Hi Experts,
    In which cases we have to use complex join in physical layer i saw in many blogs that we have to implement at the time implementing SCD type -2 in physical layer . May i know one scenario that where we have t exactly use the complex join in physical layer for better under standing.
    In which cases we have to use foreign key join in BMM layer.
    Regards,

    You got it right:
    During SCD II we go for complex join in Physical layer
    ex: sales date is between sales rep's start and end dates-> You may google it for SCD II scenarios
    In this case we go for Logical foreign key join in BMM
    Other than this case we go for complex join (in physical layer) when we dont have valid keys to join, and we go for regular complex join in BMM
    If helps pls mark

  • Complex join and f.k. join

    Hi Team,
    In which cases we will go complex join in physical layer and f.k. join BMM layer.
    thanks,

    In the BMM layer its recommended to use Complex joins always, as in this case obiee will dynamically select
    which Logical table sources to join together from the Logical tables, and put some intelligence in choosing this source. a FK join here would mean that obi has to always use the table sources specified even if it is not the optimum one.
    Complex join is used in the physical layer when there is no direct foreign key - primary key relationship between tables e.g. >,< is required to join instead of =.

  • One to one join, complex join

    How can I make a one to one join in physical layer??
    And, when can I use complex join in Physical layer???
    Thanks in advance

    In physical layer it is simple join when you join two objects like fact and dimension. You can change the cardinality of the join in BMM by specifying the relationship(like one-one, one - many and so on)
    In simple join it is always an equal to condition. You will not be able to change the condition b/w joins
    The complex join can be used when you are using like a between, greater than or less than operator joins between two columns. It is not recommended to use a complex join as it impacts performance
    Hope it helps
    Thanks
    Prash

  • Complex join goes missing during import

    morning,
    i got a complex join between 2 dimension tables (in physical layer: one table is alias of existing dimension table; other is geo hir table) which goes missing when i try to import the new SA into the existing repository (the join is in the new SA)
    there are 3 other complex joins (remaining geo hir tables that also join on alias table) which theoretically are identical and which dont go missing; i see no difference between any of them
    id appreciate any suggestions what i could check to prevent this from happening
    Edited by: UserMB on Apr 14, 2009 1:57 AM

    yes, i know its not supported
    during import the catalog is select for sure plus the security group
    i tried the merge too (following the instructions for merge with blank rep), but then it creates a second database connection instead of merging into existing one as though it would not recognize that its the same one

  • Complex Join - Clarification

    Hi,
    I have the following doubt,
    1)Once we created the physical joins between the tables and then moved the same to the BMM layer.
    The joins will be done automatically in BMM layer. As of my understanding, we have to delete the joins and recreate it using complex joins in BMM layer.
    Why we are doing this? Is there any advantage?
    Thanks,
    Edited by: Vinodh NK on Mar 20, 2010 7:05 AM

    hi Vinod
    You need not to delete the existing join in the BMM Layer. If you want to change the cardinality or join type, then only you need to join then using logical Join
    Otherwise, it will work as it is...
    Anand

  • Complex Join in RPD with Subquery

    Hi Experts,
    We have a complex requirement in our RPD Development which needs to use a subquery in the complex join in Physical layer. Here are the tables:
    Fact A
    DIM B
    Join is A.case_no = B.case_no
       and ( a.active_date between b.start_date and b.end_date or
                 (a.active_date < b.start_date and
                  b.start_date = (select min(b2.start_date)
                                              from DIM B2
                                             where b.case_no = b2.case_no
                                             group by b2.case_no
    Is there a way other than creating opaque view or making ETL changes to having the min(start_date) as part of the table ?
    Appreciate your inputs and responses.
    Thanks
    VK

    you got 2 tables or 3?
    I see 3 tables A, B and B2
    you need to join B with B2 time being just ignore min value since its equi join you get matching only
    and then B with A
    in bmm map B2 to B

  • Complex join in physical layer

    Hi Experts,
    In which scenarios we will use complex join in physical layer i saw in many blogs that when we are using expressions and other than equality.
    For better under standing can any one post few scenarios on this.
    Regards,
    Rafi

    Hi,
    Always use “Foreign Key” joins, not “Complex Joins” on the Physical Layer
    Refer-http://obiee101.blogspot.com/2011/10/obiee11g-golden-rules-rpd-physical.html
    If your join looks like D_DATE = TRUNC(S_DATETIME) try add a extra column S_DATE in your DWH. Any matching processing done by the BI-server costs time and you often loose the advantage of an index in your DWH.
    For all others relationships other than a Primary Key-Foreign Key Relationships (expression other than equal to perform an equi join), you have to use a complex join otherwise you have to use a foreign key

  • Use of complex join in BMM and Physical Join in Physical layer ?

    Hi All ,
    Why we need to use complex join in BMM layer not the Physical Join ?
    Why we need to use Physical Join in Physical layer not Complex join ?
    thanks in advance

    Hi,
    A physical join is at the physical layer and defines the join between two physical tables.
    Logical joins live at the BMM (logical) layer and define a join between two logical tables.
    The important differentiation is that at the BMM layer you do not tell the OBIEE server how to do the join,
    you just tell it that there is a relationship between these two logical entities.
    when the server comes to this logical join it will use the information in the physical joins and decides how the two logical tables are joined together.
    thanks,
    pramod.

  • Diff bw complex join and physical join

    hi all
    Can sumbody explain me the all the differences between complex join and physical join in the admin tool
    Thanks
    Shobhit

    Hi,
    Suggest you to go through this link. It may be helpful in detail.
    http://st-urriculum.oracle.com/obe/fmw/bi/biee/r1013/bi_admin/biadmin.html
    Thanks,
    Vengatesh.

Maybe you are looking for

  • Ipod won't update, says my computer isn't authorized to play my itunes song

    I just purchased an album and several individual songs thru itunes. But, when I connected my iPod, it said "updating" then it said something like "unable to update some songs like (song name) because you are not authorized to play them on your comput

  • High Availability Server in Unix Environment - Checking

    Hi experts - I would like to know, how to check in any SAP - CI server is configured for High availablity option ? I have Unix-Solaris installed in my work. Is there any Unix command would show this has HA options? Would appreciate your help. Thanks,

  • Cash Journal Printing -Consolidated Balance

    Hi All, While printing the cash journal for a particular week , The transactions are listed in the posting date order and is printed accordingly.My client requires the cash journal to be printed as opening balance , balances GLs listed and Closing ba

  • RFBIBL00 - File format

    Hi all, I would like to use standard program RFBIBL00 to perform journal postings. I have read a lot of documentation and discussions on it. However one thing I could not find is what the file format should be i.e. fixed length, coma-delimited, tab d

  • NLS Error when use ICX

    We use ICX to invoke a jweb catridge, and parameters was tranfered with hashtable. when get the Http Request,we found the character is error. we know it must the NLS setting error,but we don't know how to correct it. please mail to me [email protecte