Joins in rpd

Hi, I know that we create foreign key joins in the Physical Layer and complex joins in BMM layer. Can we create complex join in Physical Layer and foreign key joins in BMM layer? Under which circumstances should we do this? Is there any benefit/disadvantage in doing so?
Thanks,
D

hi,
Can we create complex join in Physical Layer
Re: complex join at physical layer
In BMM layer we can do only complex joins not physical joins
thanks,
saichand.v

Similar Messages

  • Documenting Joins in RPD

    Hi All,
    I want to document all Physical Joins present in RPD. Is there any way to do it instead of going through each and every join and documenting manually.
    Thanks

    1.) Agreed.
    2.) Not really. This is a physcial FKey in UDML:
    DECLARE FOREIGN KEY "Writeback (MSSQL)".."PADISHA"."Writeback (Fact)"."Writeback (Fact)_FKey" AS "Writeback (Fact)_FKey" HAVING
                "Writeback (MSSQL)".."PADISHA"."Writeback (Fact)"."COMMENT_ID" ) REFERENCES  "Writeback (MSSQL)".."PADISHA"."Dim - Market (WRITEBACK_F)"."COMMENT_ID"
         PRIVILEGES ( READ);Join expression:
    "Writeback (MSSQL)".."PADISHA"."Writeback (Fact)"."COMMENT_ID" ) REFERENCES  "Writeback (MSSQL)".."PADISHA"."Dim - Market (WRITEBACK_F)"."COMMENT_ID"Tables:
    - "Writeback (MSSQL)".."PADISHA"."Writeback (Fact)"
    - "Writeback (MSSQL)".."PADISHA"."Dim - Market (WRITEBACK_F)"
    These tables are alias objects and point to the physical table.
    So UDML has all you need.

  • 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

  • Ouer join in RPD

    Hi Gurus/Experts
    I want to apply an outer join on a fact and dimension table. I am very new to OBI and have no idea of how to go about it. i had read a few links which says creating an opaque view etc but have not got a clear picture.
    Quick response would be really appreciated.

    Hi,
    If you want to give the outer join with the fact and the dimension. Then give the join condition in the physical layer.
    In the BMM layer, open the fact table general tab and you can find symbol to add new tables. It will list all the tables with which the fact table is joined in the physical layer. Then add the dimension table and in the'joins' section you can find the dimension and the fact table with a 'tick' symbol and inner join as default. You can apply outer joins(left,right,full) depending upon your requirements.
    You need to create a opaque view when you need to retrieve data from dimension and dimension. In order to provide BI server one fact table common to both the dimensions. But if you have fact and dimensions already for you coming from the database, then its not required.
    Hope this clears your doubts.
    Regards
    MuRam

  • Unable to do Physical Join in rpd

    Hi
    I tried to join table Ra_Customer_trx_all and OE_order_header_all but the join condition is to_char(OE_order_header_all .order_number) = Ra_Customer_trx_all .Attribute6
    can i use this join condition in physical layer..Because in physical join we staraightway give the join condition but here we are changing the column type and then using the join.
    I am using OBIEE 11g
    thanks in advance for the help
    Debo

    Hi
    Thanks for the solution in physical join but when i simply join the two tables in the business layer the logical join is not pulling any data..Do we need to do something else to do the logical join between those tables
    Regards
    Debo

  • Additional join in rpd physical layer.

    Hi,
    I created a subject area joning all the tables in physical and BMM. Now I need to existing two tables with one more key. Can I just go the physical layer joins, double click on the join and add the new join there. Can we do like this or is there any process to follow. Please advice.

    user4683504 wrote:
    Hi,
    I created a subject area joning all the tables in physical and BMM. Now I need to existing two tables with one more key. Can I just go the physical layer joins, double click on the join and add the new join there. Can we do like this or is there any process to follow. Please advice.Yes thats it, or edit the join from the UI (right click table -> Foreign Keys)

  • Bug in either ANSI Join or Oracle 10.2

    I can't tell whose bug this is, but it's almost certainly a bug.
    My co-worker Martin wrote a query (below) that returned zero rows, which he knew was wrong.
    In exploring this further, he discovered that rewriting the join from ANSI 92 to the old WHERE clause join suddenly caused a "ORA-00918: column ambiguously defined" error to arise.
    Then, when he added a table qualifier to one of the column names (effective_dt became fam.effective_dt), suddenly he began to get his data.
    So, here's my question. Why does a query that uses ANSI-92 Join syntax not raise the "ORA-00918: column ambiguously defined" error, WHEN THERE WAS AN AMBIGUOUSLY DEFINED COLUMN? Does the ANSI-92 join syntax imply some sort of hierarchy of table precedence that resolves the ambiguity by implication?
    Here's the query, FYI:
    SELECT fam.asset_mix_percent_nbr
    FROM rp_mip_rpd_fund_asset_mix fam
    JOIN rp_mip_rpd_fund mrf ON fam.rp_mip_rpd_fund_seq =
    mrf.rp_mip_rpd_fund_seq
    JOIN rp_rpd_fund rpd ON mrf.rp_rpd_fund_seq = rpd.rp_rpd_fund_seq
    JOIN rp_psrpd_fund psrpd ON rpd.rp_rpd_fund_seq = psrpd.rp_rpd_fund_seq
    JOIN rp_cpsrpd_fund cpsrpd ON psrpd.rp_psrpd_fund_seq =
    cpsrpd.rp_psrpd_fund_seq
    WHERE rpd.fast_fund_id = LPAD('96', 3, '0')
    AND cpsrpd.cntrct_nbr_id = '800710'
    AND fam.effective_dt =
    -- AND effective_dt = -- this version returns no rows
    (SELECT MAX(fam1.effective_dt)
    FROM rp_mip_rpd_fund_asset_mix fam1
    WHERE fam1.effective_dt <= '03-Oct-07'
    AND fam1.rp_mip_rpd_fund_seq = mrf.rp_mip_rpd_fund_seq);

    We're at 10.2.0.2.0 on a Sun box:
    SunOS saturn1 5.9 Generic_122300-13 sun4u sparc SUNW,Sun-Fire-15000
    The explain plans are identical. Here's one:
    SQL Statement from editor:
    SELECT fam.asset_mix_percent_nbr
    FROM rp_mip_rpd_fund_asset_mix fam
    JOIN rp_mip_rpd_fund mrf ON fam.rp_mip_rpd_fund_seq =
    mrf.rp_mip_rpd_fund_seq
    JOIN rp_rpd_fund rpd ON mrf.rp_rpd_fund_seq = rpd.rp_rpd_fund_seq
    JOIN rp_psrpd_fund psrpd ON rpd.rp_rpd_fund_seq = psrpd.rp_rpd_fund_seq
    JOIN rp_cpsrpd_fund cpsrpd ON psrpd.rp_psrpd_fund_seq =
    cpsrpd.rp_psrpd_fund_seq
    WHERE rpd.fast_fund_id = LPAD('96', 3, '0')
    AND cpsrpd.cntrct_nbr_id = '800710'
    AND effective_dt = -- this version returns no rows
    (SELECT MAX(fam1.effective_dt)
    FROM rp_mip_rpd_fund_asset_mix fam1
    WHERE fam1.effective_dt <= '03-Oct-07'
    AND fam1.rp_mip_rpd_fund_seq = mrf.rp_mip_rpd_fund_seq);
      Statement Id=CB0A0233   Type=SELECT STATEMENT
        Cost=44  TimeStamp=10-DEC-07::06:46:32
           (1)  SELECT STATEMENT  CHOOSE no rows returned
         Est. Rows: 1  Cost: 20
        FILTER
               (13)  TABLE TABLE ACCESS BY INDEX ROWID RP.RP_MIP_RPD_FUND_ASSET_MIX  [Analyzed]
               (13)   Blocks: 5 Est. Rows: 1 of 275  Cost: 1
                    Tablespace: RP
                   (12)  NESTED LOOPS
                        Est. Rows: 1  Cost: 18
                       (10)  NESTED LOOPS
                            Est. Rows: 1  Cost: 17
                           (7)  HASH JOIN
                                Est. Rows: 1  Cost: 16
                               (5)  HASH JOIN
                                    Est. Rows: 20  Cost: 12
                                   (3)  TABLE TABLE ACCESS BY INDEX ROWID RP.RP_CPSRPD_FUND  [Analyzed]
                                   (3)   Blocks: 1,152 Est. Rows: 20 of 75,726  Cost: 6
                                        Tablespace: RP
                                       (2)  INDEX INDEX RANGE SCAN RP.RP_CPSRPD_FUND_F5  [Analyzed]
                                            Est. Rows: 20  Cost: 1
                                   (4)  TABLE TABLE ACCESS FULL RP.RP_PSRPD_FUND  [Analyzed]
                                   (4)   Blocks: 34 Est. Rows: 3,145 of 3,145  Cost: 5
                                        Tablespace: RP
                               (6)  TABLE TABLE ACCESS FULL RP.RP_RPD_FUND  [Analyzed]
                               (6)   Blocks: 13 Est. Rows: 3 of 276  Cost: 3
                                    Tablespace: RP
                           (9)  TABLE TABLE ACCESS BY INDEX ROWID RP.RP_MIP_RPD_FUND  [Analyzed]
                           (9)   Blocks: 5 Est. Rows: 1 of 275  Cost: 1
                                Tablespace: RP
                               (8)  INDEX INDEX RANGE SCAN RP.RP_MIP_RPD_FUND_FK2  [Analyzed]
                                    Est. Rows: 1
                       (11)  INDEX INDEX RANGE SCAN RP.RP_MIP_RPD_FUND_ASSET_MIX_FK1  [Analyzed]
                            Est. Rows: 1
               (16)  SORT AGGREGATE
                    Est. Rows: 1
                   (15)  TABLE TABLE ACCESS BY INDEX ROWID RP.RP_MIP_RPD_FUND_ASSET_MIX  [Analyzed]
                   (15)   Blocks: 5 Est. Rows: 1 of 275  Cost: 2
                        Tablespace: RP
                       (14)  INDEX INDEX RANGE SCAN RP.RP_MIP_RPD_FUND_ASSET_MIX_FK1  [Analyzed]
                            Est. Rows: 1  Cost: 1

  • Joining bridge ,dim,fact table

    Hi
    I have scenario where I have a bridge table,dimension table,and 2 fact tables.
    The dimension table is a common table for both fact tables.
    The bridge table contains the dimension tables Primary key.
    The bridge is also having an other dimension table PK, but that table is not joined to any fact table.
    Now I have a req where I have to get a column from bridge table and fact2 tables.
    Individually when I pull those columns I am getting data.
    When I pull those 2 columns together , getting " the specified criteria dint result in any data".
    Tried changing joins in RPD nothing worked.please help me , this is very urgent.
    In SQL developer when I joined bridge and fact or dimension and bridge I am able to get expected results.
    Thanks
    Sr

    Hi Suyog,
    Run this Program  in SE38   SAP_INFOCUBE_DESIGNS .
    This gives the Ratio aswell number of records.And also Dimension Mismatch.
    Rgds
    SVU

  • Outer join style report - OBIEE 10g

    Hi All,
    I have a requirement to generate a report for product & sales. I have two dimensions and various fact data elements.
    Some products may not be sold on a month but still i want to display them in the report with 0 value. I have tried this by creating a Left outer join in RPD, since we are using some other dimension in the fact calculation (calculated column) so that also comes in to the left outer join group and that mess with the results.
    So am looking for the better approach to bring the results through answers. Here is the data and expected results
    Data
    Product | Month | Sale | Margin
    Fridge | May | 100 | 20%
    Coolers| May | 50 | 4%
    Laptop| Jun| 300 | 15%
    Now am filtering the report for the month of May, my results should be looks like
    Product | Sale | Margin
    Fridge | 100 | 20%
    Coolers|50 | 4%
    Laptop| 0 | 0%
    Can anyone provide a solution for this ?
    Thanks,
    Ugser

    One possible solution is based on the fact, that OBIEE is combining (=outer joining) measures from two different fact tables by their commonly shared dimensions. What you have to do is:
    Physical layer:
    - create a new dummy fact table in the physical layer (e.g. using a view like Select 1 from dual;)
    - join all required dimension tables to the dummiy fact table using a complex foreign key. Make sure it evaluates always to true, e.g. 1=1.
    BMM:
    - create a new logical fact table for the dummy fact and join all required logical dimension tables to it using complex joins. Set the levels in content tab of LTS same way as for your other fact.
    Presentation layer:
    - expose the dummy fact column
    Answers:
    - Drag the dummy fact into your report. You might want to hide it because for a normal user it is confusing and meaningless since it will always show 1.
    - Filtering should work fine now.
    The dummy fact column will cause OBIEE to create a cartesian join, i.e. all combinations of dimension attributes used in the report will be created. Then the result of the second fact (in your case sales) will be added. In your example it will create a record for each Month for each Product. Sales and Margin will be only added for those Month and Product combinations where there are data in the sales fact.
    Hope this helps.
    Cheers,
    Peter

  • Removing full outer joins

    Hi All,
    I am creating reports from two fact tables. However, in spite of using only inner joins in RPD, obiee is generating full outer joins between two WITH (sub-query factoring) . Is there a way to enforce inner joins.
    Thanks
    Surya

    872073 wrote:
    All the joins in RPD are inner joins. The query generated is similar as follows. The full outer join is automatically created between SAWITH0 SAWITH1
    WITH
    SAWITH0 AS (SELECT sum(T245.QUANTITY_SOLD) AS c1,
    T161.CHANNEL_DESC AS c2
    FROM
    SH.CHANNELS T161,
    SH.SALES T245
    WHERE ( T161.CHANNEL_ID = T245.CHANNEL_ID )
    GROUP BY T161.CHANNEL_DESC),
    SAWITH1 AS (SELECT sum(T168.UNIT_COST) AS c1,
    T161.CHANNEL_DESC AS c2
    FROM
    SH.CHANNELS T161,
    SH.COSTS T168
    WHERE ( T161.CHANNEL_ID = T168.CHANNEL_ID )
    GROUP BY T161.CHANNEL_DESC)
    SELECT DISTINCT case when SAWITH1.c2 IS NOT NULL then SAWITH1.c2 when SAWITH0.c2 IS NOT NULL then SAWITH0.c2 end AS c1,
    SAWITH0.c1 AS c2,
    SAWITH1.c1 AS c3
    FROM
    SAWITH0 FULL OUTER JOIN SAWITH1 ON SAWITH0.c2 = SAWITH1.c2
    ORDER BY c1
    If I change the underlined FULL OUTER JOIN above to just "JOIN", the query returns what I want.
    Edited by: 872073 on Oct 24, 2012 1:14 PMCheck to see if PERF_PREFER_INTERNAL_STITCH_JOIN was turned off in the DB Features.ini file
    The path to the file is Oracle/Middleware/instances/instance1/config/OracleBIServerComponent/coreapplication_obis1/DBFeatures.INI

  • Default Selection Issue in Dashboard Prompt

    Hi All,
    I am using the below logical SQL in SQL Results for Default Selection of a column in a dashboard prompt,
    SELECT "Facts"."Service Provider", "Config"."Integration Id" FROM "IMONIT - Transaction Log" WHERE "Config"."Integration Id"='@{inttype}'
    Here, I have used a presentation variable, which is set by another prompt. Also the Facts and Config table are joined in RPD. The issue is it does not selects the values returned by the logical SQL by default. But if i use the same logical SQL in SQL Results of Choice List Values for the same column in the prompt, the logical SQL does work and populates the prompt only with the values returned by the logical SQL.
    Any help is much appreciated.
    Regards,
    Maria

    Deepak, actually the scenario is that I am navigating to the page with the dashboard prompt from another answers report located on another dashboard page. This SQL works perfectly when I press the GO button of prompt on the same page. But its not working when I am navigating to the same page with the prompt from any other report. Any ideas ?

  • Logical foreign key

    Hi All,
    I apologize to bring similar question. .
    I am able to create the logical foreign key for logical table A with new joining condition (A.2=B.2) (2 is calculated logical column).
    However there still exist Physical foreign key join with old condition (A1.=B.1). When I deploy this rpd, the report generates sql with (A1.=B.1) join condition.
    Then,I removed this Physical foreign key join in rpd,and got a warning' logical dimension B has a source that does not join with any fact table' in consistency check.
    Still after deploying this rpd , I am getting error [nQSError: 14025] No fact table exists at the requested level of detail: in report.
    I am missing anything.The logical foreign key has correct join condition still it is not over riding the physical join.
    Thanks for going through this question,
    http://tinypic.com/r/2qiwmrr/6

    Based on your comments I'm looking at documentation:
    I found a Note: A logical key for a fact table must be made up of the key columns that join to the attribute tables. Logical foreign key joins may be needed if the Oracle BI Server is to be used as an ODBC data source for certain third-party query and reporting tools.
    I need to see why ODBC, and unlike the Logical Foreign key join is not overriding join Physical layer.
    Btw: Since you want to go with a join using defined logical column, can you use the same expression in Physical join using expression builder?
    This should work.
    EX: T43770.DEPARTMENT_ID = case when T43764.DEPARTMENT_ID > 10 then T43764.DEPARTMENT_ID else 0 end
    Edited by: Srini VEERAVALLI on Jan 18, 2013 4:52 PM

  • Need limited data in the prompts

    Hi All,
    Its kind of really urgent and important to me.
    I have a prompt which hold the emp name. In the list of values i need only the list which comes when is join the emp table with the fact.
    Like is its a SQL it would be lik this.
    select e.emp_name
    from w_emp_d e, fact f
    where e.row_wid= f.emp_wid
    Thanks,
    LonaD

    hi,
    Select the Choice list values in the column prompt editor and enter the logical sql.
    It will give u the joined list if the emp table and the fact is joined in rpd.

  • Logical And Physical Joins Of  SH_PartTwo.rpd provided  by oracle OBIEE

    Hi,
    I am new the OBIEE tool.After downloading SH_PartTwo.rpd .Planned to recreate the physical and logical joins.
    If any one has already tried this, kindly explain why we are creating Alias tables of (SALES,TIMES)and joining COSTS to them instead of directly joining to Sales fact table. Below is the table structure.My question again,previously in SH.rpd we were joining Sales fact with other dimensions.If I need cost data then why should'nt I join cost with sales.
    Thanks for your cooperation in advance.
    Regards,
    Sreekanth
    Costs Sales Times Customers Countries Products Promotions Channels
    Timeid Timeid Timeid
    Productid Productid Productid
    Promotionid Promotionid Promotionid
    Channelid Channelid Channelid
    Custid Custid
    Countryid Countryid
    Unitcost Amount_sold

    Well don't know the example anymore ;)
    But you normally will make aliasses to reuse the object.
    So if you have a time dimension, and you have all kind of fields, like date_sold, date_bought, date_paid...
    Now if you connect those dates directly to the time dimension, then you can get very odd reports... if you use aliasses, then the times have nothing to do with each other...
    So it is always better to use aliasses... you never know if you need a table only once..

  • Urgent - How to join multiple facts and dimensions in OBIEE rpd??

    Hi,
    In my RPD I have 3 facts and 4 dimensions and the joins defined are as below
    Physical layer - All joins are FK and inner (1:N)
    FACTA-------------- DIM_TIME, DIM_CUST,DIM_CAL
    FACTB-------------- DIM_TIME, DIM_CUST,DIM_CAL
    FACTC-------------- DIM_TIME, DIM_CUST,DIM_CAL, DIM_XYZ
    BM layer - All joins are complex, inner
    The logical table F1 pulls columns from FACTA, FACTB and FACTC . Complex join exists between all 4 dimensions DIM_TIME, DIM_CUST,DIM_CAL, DIM_XYZ to logical table F1.
    Issue: I need to build a report with $ column from FACTA, FACTB and FACTC and need to add filter conditions using columns from DIM_TIME, DIM_CUST,DIM_CAL, DIM_XYZ.
    However when ever I add a filter condition from DIM_XYZ the physical query generated is not generating code to access data from FACTA and FACTB. Instead it is subsituting a NULL and just pulls data frm FACTC.
    My Questions: What is the best way to build the physical and BMM layer using FACTA, FACTB,FACTC, DIM_TIME, DIM_CUST,DIM_CAL and DIM_XYZ??
    I need to resolve this issue ASAP so any help is appreciated. Thanks
    Edited by: user11935561 on Feb 10, 2010 6:27 AM
    Edited by: user11935561 on Feb 10, 2010 6:28 AM

    You can find the same issue in
    Logic of queries in OBIEE
    or
    Connection between 2 fact tables
    Follow the link
    http://there-n-back-again.blogspot.com/2009/04/oracle-analytics-how-to-report-over-non.html
    Put 'All' or 'Total' at levels for dim_xxx for those facts you need in your report from facta and factb
    Regards
    Nicolae

Maybe you are looking for