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

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

  • Left ouer join with internal table

    Good morning to everybody
    I need created a internal table with 2 internal table but 1 is primary.
    I tried use "left outer join" but it allows  only with table and not with internal tabel
    I would to be this result
    a             a xxx
    b                         
    c             c zzz
    d             d sss
    e
    f              f ttt
    How can i do it?
    Thanks a lot for your support
    Beste regatrds

    Hi,
    The following code is for your reference:
    data: begin of wa1,
          key type c,
          end of wa1.
    data: begin of wa2,
          key type c,
          var(3) type c,
          end of wa2.
    data: begin of wa3,
          key1 type c,
          key2 type c,
          var(3) type c,
          end of wa3.
    data: itab1 like standard table of wa1,
          itab2 like standard table of wa2,
          itab3 like standard table of wa3.
    wa1-key = 'a'.
    append wa1 to itab1.
    wa1-key = 'b'.
    append wa1 to itab1.
    wa1-key = 'c'.
    append wa1 to itab1.
    wa1-key = 'd'.
    append wa1 to itab1.
    wa1-key = 'e'.
    append wa1 to itab1.
    wa1-key = 'f'.
    append wa1 to itab1.
    clear wa1.
    wa2-key = 'a'.
    wa2-var = 'zzz'.
    append wa2 to itab2.
    wa2-key = 'c'.
    wa2-var = 'yyy'.
    append wa2 to itab2.
    wa2-key = 'd'.
    wa2-var = 'ttt'.
    append wa2 to itab2.
    wa2-key = 'f'.
    wa2-var = 'sss'.
    append wa2 to itab2.
    clear wa2.
    loop at itab1 into wa1.
      read table itab2 into wa2
      with key key = wa1-key
      binary search.
      if sy-subrc = 0.
        wa3-key1 = wa1-key.
        wa3-key2 = wa2-key.
        wa3-var = wa2-var.
        append wa3 to itab3.
        clear wa3.
      else.
        append wa1 to itab3.
      endif.
    endloop.
    loop at itab3 into wa3.
      write:/ wa3-key1, wa3-key2,wa3-var.
    endloop.
    Hope it helps.
    Regards,
    Chris Gu

  • 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

  • InfoSet with Left Ouer Join

    Hi,
    I got a requirement to design Infoset with OUTER JOIN between 2 ODS. Even after making the outer join query is displaying the output as INNER JOIN.
    Contract ODS   (0CRM_CNT2)     [T00001]
         Contract Number
         Contract Item
    Sales ODS  (ZCRG_O16)             [T00002]
        Contract Number
        Contract Item
    Above 2 ODS are joined by Contract Number and Contract Item and marked Sales ODS as LEFT OUTER JOIN. I want to list all Contract line items in the query output even though there is no sales on that contract item.
    SQL from the Query
    CREATE VIEW [/BI0/0300094697] AS
    SELECT
    [T00002].[FISCVARNT]  AS [K____1321],
    [T00002].[FISCPER]    AS [K____1322],
    [T00001].[/BIC/ZCRCHCONT] AS [K____1307],
    [T00002].[BASE_UOM]   AS [K____1316],
    [T00001].[MATERIAL]   AS [K____1308],
    [T00002].[QUANT_B]    AS [ZIS0006___F223]
    FROM
    [/BI0/ACRM_CNT200] [T00001] LEFT JOIN
    [/BIC/AZCRG_O1600] [T00002] ON
    ([T00001].[/BIC/ZCONTRITM]  = [T00002].[/BIC/ZCONTRITM] AND
    [T00001].[/BIC/ZCRCHCONT]  = [T00002].[/BIC/ZCRCHCONT])
    WHERE (((((( [T00002].[FISCPER] = '2008006')))) AND
    (((( [T00002].[FISCVARNT] = 'V3')))) AND
    (((( [T00001].[/BIC/ZCRCHCONT]= '0006000030'))))))
    If anybody come across this pls answer . This is in BW 3.5 and Database in SQL Server
    Thanks in advance.
    Thanks
    Vinod

    Hi,
    Please see the sap note 577953 for more detail on left outer join in infosets.
    Hope it helps.
    Regards,
    Nitin

  • 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

  • Outer join clarification

    i have doubt on ouer joins.
    may i know the difference between query one and two.
    1)
    select count(test1.EMPNO)
    from test1,
    test2
    where test1.empno = test2.empno(+)
    AND test2.dept(+) = 'SALES'
    2)
    select count(test1.EMPNO)
    from test1,
    test2
    where test1.empno = test2.empno(+)
    AND test2.dept = 'SALES'

    In the first query outer join to test2 ( unmatched records from test2) also appears. so nulls ( additional rows) from test2 will come even there no matched department with 'Sales'..
    In second. Even outer join happened to test2, there are only rows with sales department will appear.. no additinal rows can be seen

  • 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

Maybe you are looking for

  • Assets Transfer

    Hi Gurus, My client want to  transfer the assets from the company code, (we are having only one company code)  but with out other company code. We have tried with t-code ABAON but some error we are facing.  And we are not ready to create a one more d

  • Do I need to turn off File Vault before I erase a hard drive?

    I have a File Vault 2 password set up on my Mac, in addition to a firmware password.  I'm selling the computer, and I want to make sure everything is wiped out. I know how to turn off the firmware password.  However, I was wondering if I need to turn

  • Rendering of RAW images in LR5 vs Canon Digital Photo Professional

    Just as a pre-amble, I love LR and perform 90% of image processing with it (rest in PS). I use a Canon EOS 5D MKIII shooting in RAW, running LR5 on Win7. My monitor is properly calibrated. Every so often I view a RAW image with Canon DPP mostly to di

  • What is the latest Mac running 10.8

    I am planning to buy a new iMac. I understand that the iMacs Apple is selling now will not run 10.8. While I can afford to buy a new iMac I can't affordto buy and relearn all the key software which will not run on Maverics. I recently went through th

  • Satellite - randomly the arrow keys, question mark key and z key will not work

    Sometime the arrow keys, question mark and z key work fine (like now) and sometimes they just don't work at all (like a minute ago).  I will just be typing and they will work and then just stop working, then work again.  They either all work or all d