One to One join

Hello All,
I have one doubt...
Let us say we have two table A and table B in my dataware house
Both have One to one relation ship
how come we can implement in RPD...
1st step import these table
2nd step do a foreign key join in Physical layer
3rd import those two table in BMM
4th BMM do a complex join
5th set cardinality as 1 to 1
Please let me know if i am correct...
can't we do 1 to 1 mapping in my Physical.....

Hi All,
Thanks for help but i still have doubt,
Let us take my example where there is Table A and Table B
In siebel these table have one to one relationship.
Now when i imported in my physical layer, as per blog which has been mentioned i should go with foreign key join, Right or Wrong ?
If i am right then I import those table in BMM and do a complex join, and will not set the cardinality right or worng ?
if I am right then how should OBI sever know it s one to one join.....
Please let me know....

Similar Messages

  • 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

  • How does one join the CS SDK Prerelease Program?

    How does one join the CS SDK Prerelease Program? We're already on the ID SDK and CS Family Prerelease programs. Who at Adobe can we contact for this?

    Hi,
    please send me a private message.
    Best regards,
    Hallgrimur

  • More than one join condition for 2 tables in obiee

    Hello,
    I am using obiee 11g.
    There are 2 tables tableA and tableB where the join condition is like (tableA.col1=tableB.col1) or (tableA.col1 is null and tableB.col1 is null)
    where should i do these type of joins.
    I tried putting in physcial layer->f(x) but giving error like here only columns an d opertaors are allowed.
    Thanks

    ok here it goes.
    I have a tableA with columns col1(pk),col2 and other columns
    I have tableB with columns col1(pk),col2..Only these 2 columns.
    Now distinct tableA.col2 values are put in tableB.col2. For those distinct values i have put the tableB.col1 values.
    Now tableA.col2 as well as tableB.col2 can be null beacuse there may be null values in tableA.col2.
    Now in tableB i have added one more row which has col1 as value and col2 as null.
    Now when in physical layer when i do tableA.col2=tableB.col2 i dont get the null values.
    What i want is whenever the tableA.col2 and tableB.col2 is null then take tableB.col1 for those vales.
    So when i query i do
    select * from tableA,tableB where
    ((tableA.col2=tableB.col2) or (tableA.col2 is null and tableB.col2 is null))
    What i want is when i do a join i should be able to give this OR condition in rpd thats it.
    because when i do in where clause of content tab it goes like a AND condition and not OR.
    Thanks
    Edited by: user123 on Jul 5, 2011 1:57 PM

  • How does one "join" a community?

    I'm trying to personalize my home page, and to add to my "Places," it says to "Join a community."
    How do I accomplish that?

    I wonder why different terminology is used?
    In my opinion, the "Join" should be changed to "Follow" or the "Follow" should be changed to "Join."
    As it is, it's about as clear as mud.

  • Can one join a 2011 Mini to an older model, plus external HD?

    I currently have the 2006 Mac Mini connected by firewire to a La Cie external hard drive.
    I would like to know if the new Mini can be connected to the existing mini -- and by extension the firewire HD --
    Also would i need to purchase a separate edition of Lion to upgrade the system on the 2006 Mini?
    thanks for helping....

    Why not just use a USB hub?

  • How does one join the dev team?

    Hi,
    I was looking around the wiki and did some keyword searches for dev and developer, and I know the wiki talks about becoming TUs.  A recent thread mentioned several times that the devs were swamped.  Is it silly to ask if it's possible to add more devs?
    Thank you,
    Rob

    Generally it's an invite-only process.  AFAIK, we currently don't have any kind of formal application process - I became a dev because I was noticed as being an energetic TU, IIRC.
    If you want to become a developer, and you feel you have an impressive 'resume', I suppose you could email Aaron and ask to be inducted - worst that could happen would be he says "try to establish yourself in the community first - become a TU" or something like that.

  • One DIMENSION, Two FACT Tables - One WEEKLY grain, one DAILY grain

    All the OBIEE gurus, thanks for checking out this post.
    Background: We have a common DIMENSION referencing two FACT tables having different granularity.
    DIM = Customer Dim
    FACT = Forecasting (Weekly granularity)
    FACT = Sales (Daily granularity)
    There is a need to report from the Customer Dimension table AND access the Forecasting FACT (weekly grain) & Sales FACT (daily grain).
    Example of query is listed below:
    Give me customer = 'ABC' and the forecast and sales for a specific time period.
    What will be the best way to handle something like this? I have seen examples of handing multi-fact table access in OBIEE but the granularity of both the FACT tables is different (weekly vs. daily).
    Any help with an example is greatly appreciated.
    Thanks,
    Sunshine

    Hi.
    This one:
    Joining different level aggregation measures together into a single logical fact table
    http://108obiee.blogspot.com/2009/07/joining-different-level-aggregation.html
    Regards
    Goran
    http://108obiee.blogspot.com

  • Table design one-to-one relation

    For a big table such as this: PROJECT_TABLE which contains 75 columns. But, only 40 columns are frequently searched against, i.e., the user enter some criteria on a web page, then start the search. The rest 35 columns are used on as-needed basis, i.e., only if the user want to view a specific record (in the returned search result). I am afraid that as the records grow, someday, the search will slow down (due to the large number of columns in the table).
    So, I plant to break the PROJECT_TABLE into two separate tables PROJECT_PARENT (project_id) and PROJECT_CHILD (project_id) and reference them by one-to-one relation. By this way, when the user conducts the search, it will be done against the PROJECT_PARENT table; while when user wants to view a specific record, it will then retrieve the data by using one-to-one join of the two tables.
    Like to know if it really help by breaking into two tables. What is your comment?
    Thanks
    Scott

    scottjhn wrote:
    For a big table such as this: PROJECT_TABLE which contains 75 columns. But, only 40 columns are frequently searched against, i.e., the user enter some criteria on a we page, then start the search. The rest 35 columns are used on as-needed basis, i.e., only if the user want to view a specific record (in the returned search result). I am afraid that as the records grow, someday, the search will slow down (due to the large number of columns in the table).
    So, I plant to break the PROJECT_TABLE into two separate tables PROJECT_PARENT (project_id) and PROJECT_CHILD (project_id) and reference them by one-to-one relation. By this way, when the user conducts the search, it will be done against the PROJECT_PARENT table; while when user wants to view a specific record, it will then retrieve the data by using one-to-one join of the two tables.
    Like to know if it really help by breaking into two tables. What is your comment?if you proceed, performance will be worse than if you do nothing.
    Do you suffer from Compulsive Tuning Disorder?
    Are you bored & looking for some activity to keep you busy?

  • Selecting from multiple tables, into one internal table

    Hi,
    What is the best & most efficient method of selecting from multiple table (in my case 6,) into one internal table?
    Thanks,
    John
    Points will be rewarded and all responses will be highly appreciated.

    I have simple example :
    First one - Join 5 tables
    data : f1 type i,
              f2 type i,
              f3 type i.
    start-of-selection.
    get run time field f1.
    write the query 4 or 5 tables join.
    get run time field f2.
    f3 = f2 - f1 ( Total time).
    Second one - joins 3 table and use for all entries
    data : f1 type i,
              f2 type i,
              f3 type i.
    start-of-selection.
    get run time field f1.
    write the query 3 tables join and use for all entries
    get run time field f2.
    f3 = f2 - f1. ( Total time )
    Finally you can have time diffrence between the both sql statement.

  • One to One relationship between Dimensions and Fact Tables

    Hi,
    Not a real Discoverer question, but seeing as there is such a huge pool of talent here, I thought I'd ask anyway...
    Is the concept of having a one to one join between a Dimension and a Fact Table an Acceptable Thing (tm). I'm not talking about a degenerate dimension, as the Dimension would hold additional attributes.
    It's something I'm trying to get my head around and would appreciate any viewpoints.
    Thanks,
    Andy

    Hi Andy,
    There is of course no distinction in SQL between 1-1 and 1-n joins, but in your database design you would avoid denormalizing data into a dimension table if it was only ever used once.
    From a Discoverer perspective setting the join to 1-1 controls how aggregate queries are constructed. Normally, if you have a master-detail 1-n relationship and you aggregate items in both tables then you will get an incorrect result for the master table because the number of rows are multipled by the n detail records. Similarily if you have 2 detail tables in the query and you aggregate items in a detail table you will get incorrect results. Discoverer recognises these situations and raises an error.
    Setting the join as 1-1 tells Discoverer that it will get the correct results in these situations and therefore no error is raised. So it is perfectly acceptable to set the joins as 1-1 as long as you know the implications.
    Hope that helps,
    Rod West

  • Using models for multiple one-to-many table relationships

    Hi there!
    I have a database with tables that have one-to-many relationships. They
    are laid out with a standard join tables:
    A     A_B     B     B_C     C
    a_id     a_id     b_id     b_id     c_id
    b_id     c_id
    and has 1 A for n of B. In some cases, the B table also joins with
    another table for yet more information.
    My question: what technique should I use to organize a database of this
    type into JATO Models?
    I could create an AModel, for example, that would have a set of query
    field descriptors for the information relevant from tables A and B. But
    then how do I query table C when that information is necessary? Or,
    more to the point, create information in C when a new entry in B is created.
    Do the models use each other, or is that left up to the view bean (seems
    incorrect for data isolation).
    Any pointers appreciated,
    Byron

    Byron,
    You can create a separate "modifying" model for each table and do
    inserts/deletes/updates in a transaction across the tables with the
    three models. That's really the easy part.
    The somewhat more tedious part is the "join" models, but not hard to do.
    You just have to decide what you need from the different tables and
    quite possibly create multiple join models for different select scenarios.
    So let's just run through a simple two table join model.
    Create a SQL model. I usually name them based on the table joins. Let's
    use a somewhat more real example:
    table = customer
    columns = custid, firstname, lastname, email
    table = address
    columns = addrid (seqid), custid (fk), type
    ('w'ork,'h'ome,'b'illing,'s'hipping,'o'ther), address1, address2, city,
    state, zip
    Suppose we want to select a customer and show a list of all his/her
    addresses.
    I would create a SQL model class (extending QueryModelBase of course)
    called CustomerAddressJoinModel (this naming convention gets tough with
    three or more tables, so you have to be creative).
    In that model, I would create the fields just like any single table
    model. You need only include the columns you need. Maybe you create one
    join model that only has custid, lastname, firstname, type, city, zip.
    OK, so we only cut out 2 columns, but you get the point. If you had a
    table with lots of columns with data you rarely need to display and/or
    update, then you can exclude them. Probably a slick way to exclude
    dynamically, but this is straight forward.
    Another join model could have all the columns of both tables.
    So the trick is to set the static where criteria (using the
    setStaticWhereCriteria method) in the model's constructor. I think the
    sql model template has this in it.
    setStaticWhereCriteria(customer.custid=address.custid);
    Now you just set your criteria like any other model, and execute it.
    For a 3 table join, you just set the static criteria like this:
    tableA.aid=tableB.aid AND tableB.bid=tableC.bid
    does that make sense?
    You can also set the "modifying table" (setModifyingTable(table) - i
    think that's right) in the model and inserts/updates/deletes will only
    operate on that table within the model. Problem is maybe in the the
    field binding in your views. You may want to select from one field, and
    modify using another field. Can be done though, just not directly supported.
    In the next release of JATO, you will be able to set a display fields
    binding for read and write using different fields and even different models.
    craig
    Byron Servies wrote:
    Hi there!
    I have a database with tables that have one-to-many relationships. They
    are laid out with a standard join tables:
         A     A_B     B     B_C     C
         a_id     a_id     b_id     b_id     c_id
         b_id     c_id
    and has 1 A for n of B. In some cases, the B table also joins with
    another table for yet more information.
    My question: what technique should I use to organize a database of this
    type into JATO Models?
    I could create an AModel, for example, that would have a set of query
    field descriptors for the information relevant from tables A and B. But
    then how do I query table C when that information is necessary? Or,
    more to the point, create information in C when a new entry in B is created.
    Do the models use each other, or is that left up to the view bean (seems
    incorrect for data isolation).
    Any pointers appreciated,
    Byron
    To download the latest version of JATO, please visit:
    http://www.sun.com/software/download/developer/5102.html
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp

  • Join Between PO and Requisition

    Hi,
    I am trying to do a report in Disco (4.1.48) on all the Open Po's associated Req with the Req Amount and Amount receipted.
    I can get the info for the Req fine and the info for the PO's fine.
    But I cannot get the join between the Po and Req to work so all the data pulls onto one sheet.
    I keep getting an error "Join configuration cannot resolved as one detail folder uses non aggregated items"
    I have a Join between Po Distributions All.Req Distribution Id and Po Req Distributions All.Distribution Id
    Any Help Greatly appreciated
    Mick

    Hi,
    Personally, I would avoid custom folders. It sounds as though you are using a master and two detail folders in your report, and you are using an aggregation function (e.g. SUM) on an item in one of the detail folders. You may be able to resolve this by changing (using Discoverer Administrator) the join on the other detail folder to be a one-to-one join.
    Rod West

  • Dynamic SQL Joining between tables and Primary keys being configured within master tables

    Team , Thanks for your help in advance !
    I'm looking out to code a dynamic SQL which should refer Master tables for table names and Primary keys and then Join for insertion into target tables .
    EG:
    INSERT INTO HUB.dbo.lp_order
    SELECT *
    FROM del.dbo.lp_order t1
    where not exists ( select *
    from hub.dbo.lp_order tw
    where t1.order_id = t2.order_id )
    SET @rows = @@ROWCOUNT
    PRINT 'Table: lp_order; Inserted Records: '+ Cast(@rows AS VARCHAR)
    -- Please note Databse names are going to remain the same but table names and join conditions on keys
    -- should vary for each table(s) being configured in master tables
    Sample of Master configuration tables with table info and PK Info :
    Table Info         
    Table_info_ID    Table_Name    
    1        lp_order    
    7        lp__transition_record    
    Table_PK_Info        
    Table_PK_Info_ID    Table_info_ID    PK_Column_Name
    2                1    order_id
    8                7    transition_record_id
    There can be more than one join condition for each table
    Thanks you !
    Rajkumar Yelugu

    Hi Rajkumar,
    It is glad to hear that you figured the question out by yourself.
    There's a flaw with your while loop in your sample code, just in case you hadn't noticed that, please see below.
    --In this case, it goes to infinite loop
    DECLARE @T TABLE(ID INT)
    INSERT INTO @T VALUES(1),(3),(2)
    DECLARE @ID INT
    SELECT @ID = MIN(ID) FROM @T
    WHILE @ID IS NOT NULL
    PRINT @ID
    SELECT @ID =ID FROM @T WHERE ID > @ID
    So a cursor would be the appropriate option in your case, please reference below.
    DECLARE @Table_Info TABLE
    Table_info_ID INT,
    Table_Name VARCHAR(99)
    INSERT INTO @Table_Info VALUES(1,'lp_order'),(7,'lp__transition_record');
    DECLARE @Table_PK_Info TABLE
    Table_PK_Info_ID INT,
    Table_info_ID INT,
    PK_Column_Name VARCHAR(99)
    INSERT INTO @Table_PK_Info VALUES(2,1,'order_id'),(8,7,'transition_record_id'),(3,1,'order_id2')
    DECLARE @SQL NVarchar(MAX),
    @ID INT,
    @Table_Name VARCHAR(20),
    @whereCondition VARCHAR(99)
    DECLARE cur_Tabel_Info CURSOR
    FOR SELECT Table_info_ID,Table_Name FROM @Table_Info
    OPEN cur_Tabel_Info
    FETCH NEXT FROM cur_Tabel_Info
    INTO @ID, @Table_Name
    WHILE @@FETCH_STATUS = 0
    BEGIN
    SELECT @whereCondition =ISNULL(@whereCondition+' AND ','') +'t1.'+PK_Column_Name+'='+'t2.'+PK_Column_Name FROM @Table_PK_Info WHERE Table_info_ID=@ID
    SET @SQL = 'INSERT INTO hub.dbo.'+@Table_Name+'
    SELECT * FROM del.dbo.'+@Table_Name+' AS T1
    WHERE NOT EXISTS (
    SELECT *
    FROM hub.dbo.'+@Table_Name+' AS T2
    WHERE '+@whereCondition+')'
    SELECT @SQL
    --EXEC(@SQL)
    SET @whereCondition = NULL
    FETCH NEXT FROM cur_Tabel_Info
    INTO @ID, @Table_Name
    END
    Supposing you had noticed and fixed the flaw, your answer sharing is always welcome.
    If you have any question, feel free to let me know.
    Eric Zhang
    TechNet Community Support

  • Spatial Performance with join

    I have a Oracle Spatial table with 3.5 million rows plus another auxillary table with 3.5 million rows. A query over these two tables joined returns a full result (250 rows) based on one to one join - here's an example:
    Select count(*)
    from F, N
    where F.id = n.id and (F.GEOM,mdsys.sdo_geometry (2003,8307, null, mdsys.sdo_elem_info_array (1,1003,1), mdsys.sdo_ordinate_array(-120.0,49.5,-119.0,49.5,-119.0,60.35,-120.0,60.35,-120.0,49.5)),
    'mask= ANYINTERACT querytype=WINDOW') = 'TRUE') AND N.PNUM = '4';
    It takes an average of 35 seconds to get the full result set back. I've gathered statistics, tweaked memory parameters and this is the best I can get. Does anyone have any suggestions?

    This is an interesting problem. It looks like Oracle is doing the right thing for each of the table accesses - use the index and fetch by rowid.
    The only thing you have to play with if you don't go to materialized views or temp tables is how the results of the two table queries are joined.
    You don't have a lot of options. Hash join seems to be slow, but you don't know if it is faster or slower compared with nested loops or merge join.
    I'd compare what you have done with something like the following to test nested loops:
    select /*+ no_merge use_nl (f1,n1) */ count(*)
    from
    (select id
    from f
    where sdo_anyinteract ( F.GEOM,
    sdo_geometry (2003,8307, null, sdo_elem_info_array (1,1003,1),
    sdo_ordinate_array (-120.0,49.5,-119.0,49.5,-119.0,60.35,
    -120.0,60.35,-120.0,49.5))) = 'TRUE') f1,
    (select id
    from n
    where n.pnum='4') n1
    where f1.id=n1.id ;
    and presort with a merge join hint to see how it performs:
    select /*+ no_merge use_merge (f1,n1) */ count(*)
    from
    (select id
    from f
    where sdo_anyinteract ( F.GEOM,
    sdo_geometry (2003,8307, null, sdo_elem_info_array (1,1003,1),
    sdo_ordinate_array (-120.0,49.5,-119.0,49.5,-119.0,60.35,
    -120.0,60.35,-120.0,49.5))) = 'TRUE'
    order by id) f1,
    (select id
    from n
    where n.pnum='4'
    order by id) n1
    where f1.id=n1.id ;
    It might be that you already have the best Oracle can do, but I'd be curious to know how you make out.
    Dan Abugov
    VP Software Support and Services
    Acquis Inc.

Maybe you are looking for