Join physical OBIEE 11 g condition

Team

How to create a physical join complex which has a substr function in OBIEE 11 g RPD.

Here's the scenario... A custom Dimension table has monthwid (201407,201408..) and the customer number. The fact table has created date (20140712, 20140715...) and the customer number. We need to create a join of physics as

Dimension table. Customer number = fact table. Table.monthwid number AND Customer Dimension = substr (date of facttable.created, 1, 6).

When I tried it, get the nqserror generic 27002. Is it more to create a join in the above scenario.

Thank you very much

Concerning

Bottom

Hi there,

I just see that the syntax is off. There "substring (... of... of...)" as follows:

Cast ("01 - Sample App Data (ORCL)" ".." ") "" "BISAMPLE '." " ZZZZ-SRORDERS ".» (GUID' as varchar (10))

=

Substring (cast ("01 - Sample App Data (ORCL)" ".." ")) "" "BISAMPLE '." " ZZZZ-SCORDERS ".» ((GUID' as varchar (10)) 0-6)

Tags: Business Intelligence

Similar Questions

  • Join physical & complex join

    Hello

    I'm little confusion when join physical use and join complex. Can we create a complex join in physical layer? If so, when it is used? and can we use physical join in layer MDB? If so when should I use? Can you please give me some examples.

    can we use physical join in layer MDB?

    You can also use physical joins in MDB to override the join in the physical layer, but only under very specific conditions.

    concerning
    Debo

  • Controlling the path of the join in OBIEE

    I have a dimension table that is the "hub" of our physical data model.

    This dimension is joined to 4 different fact tables.

    I have a query/chart from a previous version of project (everything worked very well) referenced only 2 of these fact tables.

    Now that 2 more tables of facts were brought in the image for our next version, the query that worked great now is to join all the tables facts 4 (through the central dimension) even if

    I need still to join the tables of 2 original facts.  I'm not selecting or filtering of all 2 new fact tables or their associated dimensions (except the central dimension - who share all the facts)

    in this query.  Yet, all the facts 4 tables are called.  Not sure why obiee works this way.

    I need to OBIEE do not invoke a join with a fact table, if no facts from the fact table is used in the query.  The join is affecting counties in the output and charges are incorrect.

    Looks like you have mapped them physically.

    Go to the sources of logical sources IE 2nd logical table.

  • Outer join of OBIEE 10 G

    Hi, I'm new to OBIEE 10 G.


    I have a DimA (dimension), memoirs (fact). I traced the foreign key relationship between DimA and briefs on DimA.A = FactA.A MDB, the relationship is internal and greyed out, so I can't change it to outer join.

    So in the report answers, it only shows data for the inner join of the two tables. What I want is to show all items in DimA and associated items FactA or 0 for those not related.

    I posted a similar question here before https://forums.oracle.com/thread/2596618

    But I can't always change the relationship (still dimmed) even though I opened a deposit in offline mode.

    And what I think is is an option in responses to dynamically control the join (internal or external). For example, sometimes I want to show only paired DimA and FactA, sometimes all the DimA and related FactA or 0, so that I do not change the repository MDB every time if the requirement is changed.

    What is the best practice in this case?

    Thank you.

    Try opening the SPR OFFLINE, or to open in mode online and starting then other CASES it would be gray.

    If you have trouble sending the RPD to sveerava at gm

  • Join subquery OBIEE

    Hi all

    I am able to join the 2 reports using "Filter is based on the results of the analysis another" based on e_id and m_timestamp to build the following query report

    Select a.e_id, count (distinct a.m_timestamp) of

    RAW_DATA has)

    SELECT count (*), e_id, m_timestamp of raw_data

    Group of e_id, m_timestamp

    After having count (*) > b 1).

    where a.eq_id = b.e_id and a.m_timestamp = b.m_timestamp

    A.e_id group

    But I want to eliminate the join and generate a report based on this (to improve performance)

    Select b.e_id, count (*) from

    (

    SELECT count (*), e_id, m_timestamp of raw_data

    Group of e_id, m_timestamp

    After having count (*) > b 1).

    B.e_id group

    Which gives the same result but with joins removed - can someone help how to implement this in OBIEE 11 g?

    Try something like

    Select e_id, count (distinct m_timestamp) of

    RAW_DATA

    view count (1) > 1

    E_id group

    If brand aid

    ~ http://cool-bi.com

  • Joins in OBIEE

    Hello

    If we have a table A and B with the common name column and a table stores the name value to upper case and B table stores the values of the names in lowercase. So how we can join these two tables. In physics, we can convert the column with the name in lowercase (B.name) UPPER and join this straight path in the physical layer using foreign key join: B.SID = UPPER (B.Name). Am I wrong?

    Thank you
    XYZ

    Yes you are right.
    for example
    I have the emp table and also a table name as emp8
    emp8 as tiny ename.
    the example query will be like this
    Select e8.ename, e.empno in emp e, e8 emp8 where e.ename = upper (e8.ename)

  • filter on table physics obiee - obiee 10g

    I have an obligation to filtering some rows in a table in the physical layer.

    That's what I did. On the general tab of the physical table, I changed the Type of the "SELECT" Table and added a select statement with all the columns in this table and included a where clause for the filter clause.

    I want to confirm if this approach stops all functionality in my deposit. Please notify.

    It works very well, but it is converted into opaque mode which can can cause degradation of performance. Best filter using where clause MDB LTS.

  • OBIEE - physical layer

    Hello

    I'm new to tool obiee.

    My dimension table is composite primary keys (3 keys - suppose that the employee id, employee ssn, phone number)
    and my fact table (2 key - id of the employee, the employee ssn)

    so, how can we do physical to join physical layer?

    Do we need to create 2 tables aliases and join my fact table?
    or, something else I can use expressions in the physical... join physical diagram generator?

    831909 wrote:
    @ Ashish... I used the expression builder. And created joins as much as possible of the fact table dimension table. Don't you think it's the right approach?

    The problem is that the BI server will always use all even if you do not want it. You MUST create aliases when you wish to join for different purposes, Deepaks example is a good thing. If you put the two joints of the same table, you would never get of fact records where the 2 dates are the same.

  • Administration tool of BI - physical foreign key corresponding MDB logical join?

    Hello

    Can anyone explain why when you create a join (physical foreign key) in the physical layer for example

    Then view the corresponding logic join in the MDB layer it is the other way round? that is the "one" table in appears on the right and the "an array much ' on the left.

    It seems fair that logically, I would have expected the "one" table will appear on the left and the "table several" on the right as it does in the physical layer?

    Kind regards

    Tom Rowe

    Hello

    Thanks for your answer Yes, indeed the cardinality is the important thing here, and the query gives the expected results. However also personally find this confusion not to mention that I have since found it also seems to be incompatible, that is. some logical joins are shown round track that I know and others aren't, I redefine the joins that do not have the table 'a' appearing on the left and the "a table much" appearing on the left. This also has the advantage of showing all the table 1 in the form of tables table 2 as fact in the Manager of joint tables and dimension.

    Appears not to be a minor bug / irritation me may therefore raise a SR with Oracle.

    Kind regards

    Tom Rowe.

  • Join as a Condition

    Hello

    I'd like to get the code from location_lookup table based on a descriptive text of the location_source table, but this would require a join by using a like condition. There are also several research location with unique codes, but the requirement would be to select the first code:

    create the table location_source
    (code number,
    Description varchar2 (100)
    );

    insert into location_source values (", 'visit London');
    insert into location_source values (", 'flight Paris 9,30');
    insert into location_source values (", 'baggage 20kg Hong kong');
    insert into location_source values (", 'check out 6.30');
    insert into location_source values (", 'new york, 23 Jul');
    insert into location_source values (", 'jy688 of flight sydney');

    create the table location_lookup
    (code number
    location_lookup varchar2 (10)
    );

    insert into location_lookup values (001, "London");
    insert into location_lookup values (002, "London");
    insert into location_lookup values (003, 'Paris');
    insert into location_lookup values ('004, Hong Kong");
    insert into location_lookup values (005, 'Paris');
    insert into location_lookup values ('006, New York");

    The SQL looks like this:

    Select s.*, min (l.code), l.location_lookup

    of location_source s, locaction_lookup l

    and SUPERIOR (s.description |) "%') as superior (l.location_lookup |) » %')

    Group of s.*, l.location_lookup

    Power required:

    CodeDescriptionCodeLocation_Lookup
    check in London001London
    Paris 9:30 flight003Paris
    baggage 20kg Hong kong004Hong Kong
    starting at 6:30
    New york 23 Jul006New York City
    flight sydney jy688

    You try to use Oracle Text.

    How to prepare the SCOTT to use Oracle Text:

    SQL>
    SQL> SHOW USER
    USER is "SYS"
    SQL>
    SQL> GRANT ctxapp TO scott;
    
    Grant succeeded.
    
    SQL> GRANT EXECUTE ON CTXSYS.CTX_CLS TO scott;
    
    Grant succeeded.
    
    SQL> GRANT EXECUTE ON CTXSYS.CTX_DDL TO scott;
    GRANT EXECUTE ON CTXSYS.CTX_DOC TO scott;
    GRANT EXECUTE ON CTXSYS.CTX_OUTPUT TO scott;
    GRANT EXECUTE ON CTXSYS.CTX_QUERY TO scott;
    GRANT EXECUTE ON CTXSYS.CTX_REPORT TO scott;
    GRANT EXECUTE ON CTXSYS.CTX_THES TO scott;
    GRANT EXECUTE ON CTXSYS.CTX_ULEXER TO scott;
    Grant succeeded.
    
    SQL>
    Grant succeeded.
    
    SQL>
    Grant succeeded.
    
    SQL>
    Grant succeeded.
    
    SQL>
    Grant succeeded.
    
    SQL>
    Grant succeeded.
    

    Now the test itself:

    SQL> SHOW user
    USER is "SCOTT"
    SQL> --My database version.
    SQL> SELECT * FROm v$version;
    
    BANNER
    --------------------------------------------------------------------------------
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit 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
    
    SQL> SELECT * FROM location_source;
    
          CODE DESCRIPTION
    ---------- ----------------------------------------------------------------------------------------------------
               check in london
               flight Paris 9.30
               baggage allowance 20kg Hong kong
               check out 6.30
               new york 23rd Jul
               flight jy688 sydney
    
    6 rows selected.
    
    SQL> SELECT * FROM location_lookup;
    
          CODE LOCATION_L
    ---------- ----------
             1 London
             2 London
             3 Paris
             4 Hong Kong
             5 Paris
             6 New York
    
    6 rows selected.
    
    SQL> CREATE INDEX location_source_idx ON location_source(description) INDEXTYPE IS CTXSYS.CONTEXT;
    
    Index created.
    
    SQL>  EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'LOCATION_SOURCE', cascade=>TRUE);
    
    PL/SQL procedure successfully completed.
    
    SQL> ed
    Wrote file afiedt.buf
    
      1  SELECT ls.code,
      2    ls.description,
      3    MIN(ll.code) new_code,
      4    ll.location_lookup
      5  FROM location_source ls
      6  LEFT OUTER JOIN location_lookup ll
      7  ON contains(ls.description,ll.location_lookup)>0
      8  GROUP BY ls.code,
      9    ls.description,
     10*   ll.location_lookup
    SQL> /
    
          CODE DESCRIPTION                                                                                            NEW_CODE LOCATION_L
    ---------- ---------------------------------------------------------------------------------------------------- ---------- ----------
               check in london                                                                                               1 London
               baggage allowance 20kg Hong kong                                                                              4 Hong Kong
               check out 6.30
               new york 23rd Jul                                                                                             6 New York
               flight Paris 9.30                                                                                             3 Paris
               flight jy688 sydney
    
    6 rows selected.
    
  • Join external condition bug/feature when you use a RC?

    First I picked up on this bug/feature in an article in the blog of Armstrong ([http://learndiscoverer.blogspot.com/2008/05/using-case-to-solver-outer-join-issues.html])

    It seems that when you use an OR condition in Disco as well as 10 g, it ignores the join on the table conditions...

    I've included the two reports the SQL code to illustrate my point:

    Here is the SQL code generated when I agree with the point of view, you will notice the outer join (i.e. "(+)" ")
    SELECT O100288. UNIQUE_ID, O100291. UNIQUE_ID
    OF ODSTHING. TABLE1: O100288, ODSTHING. O100291 FROM TABLE2
    WHERE ((O100291. UNIQUE_ID = O100288. UNIQUE_ID (+)))
    ;

    Here's what happens if I simply add that a condition is not null. Notice the outer join on the 'IS NOT NULL' which allows to do nothing
    SELECT O100288. UNIQUE_ID, O100291. UNIQUE_ID
    OF ODSTHING. TABLE1: O100288, ODSTHING. O100291 FROM TABLE2
    WHERE ((O100291. UNIQUE_ID = O100288. UNIQUE_ID (+))) AND (O100288. UNIQUE_ID (+) IS NOT NULL)
    ;

    This is what happens when I have AND the same condition with himself, he remains outside joined
    SELECT O100288. UNIQUE_ID, O100291. UNIQUE_ID
    OF ODSTHING. TABLE1: O100288, ODSTHING. O100291 FROM TABLE2
    WHERE ((O100291. UNIQUE_ID = O100288. UNIQUE_ID (+))) AND (((O100288. UNIQUE_ID (+) IS NOT NULL AND O100288. UNIQUE_ID (+) IS NOT NULL)))
    ;+

    Here's what happens if I have the same CONDITION with himself. MAGIC! The outer join disappears!
    SELECT O100288. UNIQUE_ID, O100291. UNIQUE_ID
    OF ODSTHING. TABLE1: O100288, ODSTHING. O100291 FROM TABLE2
    WHERE ((O100291. UNIQUE_ID = O100288. UNIQUE_ID (+))) AND (((O100288. UNIQUE_ID IS NOT NULL OR O100288. UNIQUE_ID IS NOT NULL)))
    ;

    Is it the way it is supposed to work? If it is then I don't see any trace of it in the documentation ([http://download.oracle.com/docs/html/B13915_04/conditions.htm])

    Is it just a useful bug?

    What people think about its use?

    Published by: user4404031 on Sep 12, 2008 08:23

    Hello

    It is documented (http://download.oracle.com/docs/html/B13916_04/conditions.htm#sthref854) that the discoverer does not use outer joins with IN and OR conditions. But the implications of this are not stated. The documentation never tries to explain the underlying SQL.

    Rod West

  • RE: Join complex

    Hi Experts,

    I have a few questions about the complex joins

    1 > first when import us the tables in the physical layer, we joins from FK for the tables according to our requirement so layered MDB, we create new business model then again why to do complex layer of MDB already join there are joins between the tables in the physical layer , the scenarios that we do the complex join if we do not the complex join what will happens.

    2 > if we FK join instead of complex layer MDB join what will be the result.

    Thanks in advance,

    Hello

    We have two joins in OBIEE a foreign key join and join another complex. Above all 99% of the cases we use foreign key join physical layer.we use a complex join in a phycical layer mainly in the three scenarios.

    (1) when it is extended to the join conditions.
    (2) when we join a key of a table column with a column not key in the other table.
    (3) where the operator is other than the equal to operator.

    In these 3 situations, we use a complex join in the physical layer.

    Then we're we have already joined in the physical layer then what is the need to create complex joins in right MDB layer.
    The answer to this question is each user runs a report that will generate the logical sql query our OBIEE includes only logic sql query this logical query generated sql logic-based attend the MDB layer.
    Based on this logic joins only it will create more sql query optimization. And one of the reasons for creating logical joins

    If we want to specify table conduct is possible only Suiloidi complex join layer MDB.
    and if we want to specify the type of join is possible only Suiloidi complex join layer MDB
    and if we want to specify cordinality is possible only Suiloidi complex join layer MDB

    and another is my tool is not able to identify the facts and dimensions because it has no intelligence, we need to incorporate the intelligence giving logical joins only identifies the facts and dimensions.
    We must therefore create logical joins layer MDB...

    Give me like, if you aresatisified with my post.

    Thank you

    Menama SAI

  • What is the logical application of diff b/w and the physical query?

    Thank you in advance

    OBIEE logical query is how you query the BI server, presentation services sends logical SQL to the BI server, you can also write your own using JDBC, pull BI server using ODI etc.

    The BI Server engine takes this logical query and querie (s) phyiscal wrote (several) to satisfy the logical request, depeninding on how your layer MDB and physics is configured. There are a number of rules the BI server evaluates before deciding on the physical request more appropriate to generate rules include joins physical, tales of the aggregates / hierarchy levels and so on.

    Hope this helps,
    Good luck with the interview :-)

    Alastair

  • Confused about the complex joins in joins Manager

    Hello

    I know that when we create join in the physical layer, we must use "foreign key" this icon,.

    and when we need create joins in the MDB layer, you need to use 'new joint complex. "

    so, what is the purpose of the complex joined in the Manager of joins? I'm so confused on this subject...

    Kind regards
    Anne

    Hello
    Please see the below a

    http://obiee11gqna.blogspot.com/2011/02/interview-questions-on-joins-in-OBIEE.html

    ---> complex join is that join in join where as two tables has no way join foreign at this complex time key is used

    --> Join complex:-join complex are used in the physical layer between two tables where ever who do not key primary and forgin key relationship.

    Foregin Key:-using the forgin key we can define the join between two tables. joins between is 1:M or M:M., if we want to define: many relationships we use the bridge tables.

    Thank you

    Deva

    Published by: Devarasu on October 18, 2011 10:27

  • outer join does not give the expected results (missing documents)

    Hello
    I have problem with outer join in OBIEE 10 g.

    I'm testing it on the model of simplified database

    STAT table with some statistics of TYPEs
    stat_date, id_type, num
    ..
    ..
    26/03/2003, 20: 1
    26/03/2003, 21: 1
    26/03/2003, 23: 1
    26/03/2003, 24, 1
    26/03/2003, 25, 1
    ..
    27/03/2003, 22, 1 <-different date here
    ..
    ..

    Table TYPES
    ID_type
    ..
    ..
    20
    21
    22
    23
    24
    25
    ..
    ..


    Physical model
    STAT >-TYPES


    AM.
    F1 (only Digital STAT table column (agg. County))
    D1 (STAT_DATE of the STAT table column only)
    D2 (source TYPES)

    D1 - inner join - < F1
    D2 - left outer join - < F1


    I would like to create simple report filtered by date with number of each type.
    I want to get this result
    ID_type County
    ..     ..
    ..     ..
    20 1
    21 1
    22 null
    23 1
    24 1
    25 1
    ..     ..
    ..     ..


    But I get this
    ID_type County
    ..     ..
    ..     ..
    20 1
    21 1
    23 1
    24 1
    25 1
    ..     ..
    ..     ..

    ID_type 22 is missing


    !!!

    I NORMALLY GET RESULT ONLY IF I DELETE RECORD ' 27/03/2003 22' OF MY FACT TABLE.

    !!!


    I have the filter on the date column D1
    STAT_DATE = 26/03/2003 or STAT_DATE is null


    BI Server running this SQL query


    Select distinct D1.c1 as c1,
    D1. C2 C2
    Of
    (select count (T17840. NUM) in c1.
    T17867.ID_TYPE C2
    Of
    Left outer join of TYPES T17867
    STAT T17840 on T17840.ID_TYPE = T17867.ID_TYPE
    where (T17840. STAT_DATE in (TO_DATE ('2003-03-26', 'YYYY-MM-DD')) or T17840. STAT_DATE is null)
    T17867.ID_TYPE group
    ) D1


    Can you give me some advice?

    Thank you

    Hi cardel,

    I think that you can achieve your goal if you build a dimension of the array STAT form, you can create a table Alias in the physical layer and then to join the table of facts (external to the left). In this way, I think that you can solve your problem.

    Let me know.

    Kind regards
    Gianluca

Maybe you are looking for