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

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

  • 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

    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

  • 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

  • Error when using Oracle OTD wizard

    I'm getting this message when I try to create an OTD using the oracle otd wizard with Netbeans in Windows. Does anyone know how to resolve this issue? java.lang.NullPointerException      at com.stc.oracle.wizard.TablesVisualPanel.isValid(TablesVisual

  • Mail not recognizing servers

    I have an iMac G4, recently updated to 10.4.4 (big error?). The last two days, several of our Mail accounts (I have 5) either gave me the "offline" tilde when I brought the program up, or it worked fine. Manually going on line and "get new mail" woul

  • Lightroom vs. elements

    I am interested in understanding  the difference in the ability of Lightroom and Elements to edit photographs; if my only interest is cropping, setting exposure, saturation, clarity, etc, rather than the ability of the software to actually change the

  • Flv player buffering issue

    Hi Everyone....!               In my flv player,all the functionalities are well.But,one thing is,when player buffering the video,it will automatically taggled into paused state.After buffered full video completely,then only start playing.I was given

  • Unable to open web query. Cannot download the information you requested.

    I am attempting to import several financial statements into a stock valuation program I have created. Sometimes, the web queries work fine and other times they do not. For instance, if I reset my computer they will sometimes work. It is very random,