OBIEE: incorrect selection of fact table when generating SQL

I have 2 dimension tables ("DimA" and "DimB") connected with one fact table ("Fact1").
Also (only) "DimB" is connected with another fact table "Fact2".
When I want to make a report with one attribute ("Attribute_A") from "DimA" and another one ("Attribute_B") from "DimB", I receive a error like this:
"State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 15018] Incorrectly defined logical table source (for fact table Fact2) does not contain mapping for [DimA.Attribute_A]. (HY000)"
Remember that is not supposed "DimA" to be connected with "Fact2", only with "Fact1".
The only factor that I see that can be a problem is the fact that in Presentation Catalog was defined a implicit column from tact table "Fact2".

Hi,
While I don't know the need to generate a report based on 2 dimensions only, I mean you are trying to generate a report between 2 dimensions. Dimensions are not joined together in OBIEE. OBIEE will try to pull any fact and try to obtain the relationship between the two dimensions. In your case it is taking Fact2.
One way could be if u just pull in some measure from Fact1, then u should be able to get the report.
Else u can try setting content level for DimA in fact 2 to grand total level. This can be done even though dimA and Fact2 are not joined. Although I am not sure whether this will work.

Similar Messages

  • How to prioritise obiee to select logical fact out of 2 logical fact tables

    Hi All,
    I have a scenario where in I have 2 Logical Fact tables F1 and F2 and 2 Logical Dim tables D1 and D2.
    Both Logical Dim tables are joined to F1 and F2 i.e.(D1-F1-D2) and (D1-F2-D2). When a user selects columns from D1 and D2 it always select F1.
    I would like OBIEE to select F2 instead of F1. Is this possible?
    With Regards
    Prads

    You need to mention the levels in content tab of LTSs depends on the joins to dimensions.
    It automatically picks the right LTS based on the dimensions selected in criteria & levels in the content tab of your LTSs.
    Anyways, if you want to make f2 as main LTSs put that in first position under Sources folder.

  • Record count is more in the Fact tables when compared to Cube data!

    When i delete request from my cube it is not getting deleted from the fact table. Cube shows around 3.5 million records but when I checked in the fact table it was showing more than 11 million records.

    Hi Kingsley,
       You may try this approach.
       1. Use TCode listschema
       2. Select the type of cube abd give the cube name as well.
       3. This will display the table sinvolved in the cube(star schema).
       4. Select the Ftable listed there and see the number of rows in it.
       Inorder to delete the entire data from cube, you may need to delete all the load requests that has happened before as well.
       Hope this helps...
    Thanks,
    Raj

  • SELECT-OPTIONS in table maintenance generator screen

    Hi
    Is it possible to create SELECT-OPTIONS in table maintenance screen?
    My requirement is to allow the user to enter single Company code and Range of G/L Accounts in the Table Maintenance input screen. Please let me know.
    Thanks
    Abdul Hakim

    Hello Tamas,
    As a matter of fact we can add a custom selection-screen to the TMG screen & without manually modifying the TMG
    You can do so by using the [Event AA: Instead of the Standard Data Read Routine|http://help.sap.com/saphelp_nw04s/helpdata/en/91/ca9f56a9d111d1a5690000e82deaaa/content.htm].
    Please check the code snippet:
    DATA: gv_fldate TYPE s_date.
    * User-defined selection-screen
    SELECTION-SCREEN: BEGIN OF SCREEN 9000.
    PARAMETERS:     p_carrid TYPE s_carr_id OBLIGATORY.
    SELECT-OPTIONS: s_fldate FOR gv_fldate OBLIGATORY.
    SELECTION-SCREEN: END OF SCREEN 9000.
    *&      Form  sub_yvsflight_event_aa
    *       text
    FORM sub_yvsflight_event_aa.
      DATA: ls_temp_data TYPE yvsflight,
            lt_temp_data TYPE STANDARD TABLE OF yvsflight.
    * Call the user-defined selection-screen
      CALL SELECTION-SCREEN 9000 STARTING AT 25 10.
    * Populate the int. table TOTAL
      PERFORM get_data_yvsflight.
    * Delete the records which are not required
      LOOP AT total.
        ls_temp_data = <vim_total_struc>. "Copy to local struct.
        IF ls_temp_data-carrid NE p_carrid OR
           ls_temp_data-fldate NOT IN s_fldate.
          DELETE total. "Remove the record from the TOTAL
        ENDIF.
      ENDLOOP.
    ENDFORM.                    "sub_yvsflight_event_aa
    BR,
    Suhas

  • My request shows a diff Fact table when new Dim columns added to OOB report

    Hi,
    I am facing this strange problem with the out-of-box BMM metadata mapping and report:
    The "Dim_W_GL_ACCOUNT_D" is joined to "Fact_W_GL_OTHER_F" and "Fact_W_GL_BALANCE_F" facts. Both these fact tables have a inner join to "Dim_W_GL_ACCOUNT_D". The change I have made in th BMM is - I added 2 new logical dimensions DimA and DimB and joined these to the above 2 fact tables.
    The O-O-Box "GL Account Balance" Report works fine which has 3 logical columns (GL Account Number, Financial Statement Item, GL Account Category) from the "Dim_W_GL_ACCOUNT_D" and 1 Fact column "Closing Amount" which points to the "Fact_W_GL_BALANCE_F"."BALANCE_GLOBAL1_AMT" fact.
    When I add 1 logical column each from my 2 new Dims I created, the report output shows the Fact column "Closing Amount" as $0.0. Upon investigating the log, the query shows it is using the "Fact_W_GL_OTHER_F" instead of "Fact_W_GL_BALANCE_F" fact which has the "Closing Amount" column. I am not sure how. When I drop the logical column "GL Account Number" and keep my 2 new logical columns in the request, the "Closing Amount" is shown correctly. I also saw there is a Dim Hierarchy for "GL Accounts" --- the "GL Account Number" is on a lower level than the "Financial Statement Item" and "GL Account Category" columns from the same logical dimension table which are 1 level higher.
    How do I make the request pull data at the "GL Account Number" level and still have the query fetch data from "Fact_W_GL_BALANCE_F"."BALANCE_GLOBAL1_AMT" (Closing Amount) with my 2 new logical columns included?
    Any help is appreciated. Thanks a bunch.

    I was able to fix the problem.

  • Record count is double in the Fact tables when compared to Cube data!

    Hello BW Gurus,
    I have 2 question to be answered!
    1. I have a cube which consist of 3 years of data. Due to some bad data in it, I have dropped the cube data completely from fact and dim tables and did an init. from ODS. the load failed due to "No SID found for value '2000000000000000000000010' of characteristic 0MAT_PLANT". I have run a RSRV test to find if there is any inconsistency in SID's for 0MAT_PLANT but everything looks great. Considering the time span in mind to finish the load I have removed that record from PSA and re-pushed the data from PSA which was successful, however I wanted to know if anyone has come across such kind of error.
    2. The load finished successfully in the cube but the performance of the cube was very bad coz my cube request shows only 3.5 million records but when I checked in the fact table it was showing double i.e. 7 million records, which is because I deleted the failed init. request and re-pushed the data from PSA. can anyone suggest me how to overcome this I mean how to bring back my fact table records to 3.5 million?
    please advise me and thanks so much!
    Swathi.

    hi Swathi,
    1. for 0mat_plant no sid, beside rsrv, you can try rsd1, infoobject maintenance, there is menu (about 3rd from left) 'fill sid ...'.
    for infocube update, please make sure you 'delete data',
    'fact and dim...'. check again if fact table counts 0 records then you can update from ods with 'initialize'. or if you go by psa then delete data both infocube and ods (from ods to cube should sufficient).
    2. for performance, check in infocube -> manage -> performance, make sure index and statistic is green. you can create index there, also refresh the statistic.
    hope this helps.

  • Best way to connect two fact tables when no conformed dimension exists

    Can anyone please elaborate how would I connect two fact table without any conformed dimension. Let say FACTA, FACTB. FACTB is related to a dimension "StatusDim". I want to select the count of all FACTA item which are related to FACTB items with
    a particular status. I have found the following article but just wondering whether it is the best practise to connect two fact tables directly.
    http://bifuture.blogspot.com/2011/11/ssas-selecting-facts-with-reference.html
    Thank you

    Hi Ahsan,
    After read the blog you posted, I think it's a pretty good solution to create a view in the relational database or a named query in the Data Source View containing as the the columns in FACTA and FACTB. Then build a dimension from it, setting the "Null processing"
    property (you have to click the "plus" two times for the "Key Columns" property of the attribute in BIDS to access this property) to "UnknownMember". And then use this dimension for the many-to-many relationship. Dimensions from FactA can benefit of the reference
    relationship between FactA and FactB and therefore a powerful solution it is.
    Regards,
    Charlie Liao
    If you have any feedback on our support, please click
    here.
    Charlie Liao
    TechNet Community Support

  • OBIEE 10g: Problem on fact table mapping

    Hi to everyone,
    i have this situation:
    1) i have 2 fact tables in phisical model (FHRCTR and HCTOT) this two table is the same in the FK columns.
    2) the structure is: FHRCTR[month_fk, transaction_type, measure A], HCTOT[month_fk, measure B]. 'transaction_type' is an attribute of the table not dimension.
    3) i have created a logical fact table with this two tables for source.
    4) each field of logical table is mapped on the corrispetive field on the both phisical table, except for 'transaction_type' column having as source only FHRCTR table.
    5) i've created a report with follow colums: month_fk, transaction_type, measure_A, measure_B
    The problem is: if i create the report with the columns in point 5, the measure_B returns null values and the measure_A have a correct value.
    Insteed if i create a report without 'transaction_type' column the value of Measure_B and Measure_A are correct.
    I remind you that: 'transaction_type' in the logical fact table is mapped only on the FHRCTR table because on HCTOT it doesn't exist.
    Can you help me to solve this issue?
    Thanks

    832596 wrote:
    Can you help me to solve this issue?
    ThanksI guess when you set some aggregation rule for 'transaction_type' in a repository then all will be ok (for examplу - min). But you'll get results that you don't expect.

  • How to update a fact table when a dimension table is reloaded

    We have implemented BI Apps 796. Insertion into W_EMPLOYEE_D table which stores all the employee information had stopped one year back as some company security policy restricted the informatica worklfows to pick up the data. (PER_ALL_PEOPLE_F was a HRMS table and it contained sensitive information line SSN and salary, was inaccessible to the user which informatica uses and the SDE mapping used to return 0 rows).
    Now we have the approval to see those rows and the dimension table is loaded with some 100 new employees who joined in last one year.
    The ROW_WID of W_EMPLOYEE_D is referenced in lot of fact tables and for all those missing employees the WID in the fact table is 0.
    Now that we have all employees, how to make the FACT table point to the correct WID and not store 0. Has anyone faced this problem before?? Writing an update statement will be a tedious task as there are so many fact tables that join to w_employee_d. Also our company uses Sales, Procurement, Finance modules of OB Apps (which constitutes atleast 20 fact tables)
    Any guidance is appreciated. Thanks in advance

    Hello Kostis,
    thank you for your answer. I don't fully understand you. Can you show me short example, please? I create alias table for time dimension on Physical Layer - original table is TimeDayDim and I create aliases TimeDayDim1, TimeDayDim2, TimeDayDim3, TimeDayDim4. Then I create foreign key Fact.Time1 -> TimeDayDim1, Fact.Time2 -> TimeDayDim2, Fact.Time3 -> TimeDayDim3, Fact.Time4 -> TimeDayDim4. And what now? Must I create these table api Bussines Model and create new time dimensions at bussiness model????
    I need in Answers ONE Time dimension. I think I must split my fact table to four tables ... (time1, place1 ...) (time2, place2 ...) (time3 place3...) (time4 place4...) then link those tables to Time dimension (but I dont know where I can split those tables - on Physical Layer or on Bussines Layer).
    I suppose that I will have in Answers one time dimension and four facts tables and I will be able to query them. (for example: Time.Days, Fact1.Place1, Fact3.Speed, Fact4.Count Criteria: Time.Year = 2008)
    Best Regards Vlada

  • Error while selecting  from nested table in PL/SQL block ............

    SQL> create type string_table is table of varchar(100);
    2 /
    Type created.
    declare
    v_names string_table := string_table();
    begin
    v_names.EXTEND(3);
    v_names(1) := 'name1';
    v_names(2) := 'name2';
    v_names(3) := 'name3';
    dbms_output.put_line(v_names(1));
    dbms_output.put_line(v_names(2));
    dbms_output.put_line(v_names(3));
    dbms_output.put_line(v_names.COUNT());
    select * from table(v_names);
    end;
    select * from table(v_names);
    ERROR at line 12:
    ORA-06550: line 12, column 7:
    PLS-00428: an INTO clause is expected in this SELECT statement

    select * from table(v_names);
    I guess ,here you were trying to put the content of the NT into another NT, or just trying to print it.
    But, I don't think INTO Clause is mandatory here.
    Please check your modified code (w/o INTO) and the output :
    DECLARE
       TYPE string_table IS TABLE OF VARCHAR (100);
       v_names   string_table := string_table ();
       v_test    string_table := string_table ();
    BEGIN
       v_names.EXTEND (3);
       v_names (1) := 'name1';
       v_names (2) := 'name2';
       v_names (3) := 'name3';
       DBMS_OUTPUT.put_line ('Old collection - '||v_names (1));
       DBMS_OUTPUT.put_line ('Old collection - '||v_names (2));
       DBMS_OUTPUT.put_line ('Old collection - '||v_names (3));
       DBMS_OUTPUT.put_line ('Old collection - '||v_names.COUNT ());
       DBMS_OUTPUT.put_line (CHR(10));
       /* SELECT * FROM TABLE (v_names); */
       v_test := v_names;
       DBMS_OUTPUT.put_line ('New collection -- '||v_test (1));
       DBMS_OUTPUT.put_line ('New collection -- '||v_test (2));
       DBMS_OUTPUT.put_line ('New collection -- '||v_test (3));
       DBMS_OUTPUT.put_line ('New collection -- '||v_test.COUNT ());
       DBMS_OUTPUT.put_line (CHR(10));
       /* Printing using FOR LOOP */
       FOR i IN v_test.FIRST..v_test.LAST
       LOOP
         DBMS_OUTPUT.put_line ('In FOR Loop --- '||v_test (i));
       END LOOP;
    EXCEPTION
       WHEN OTHERS
       THEN
          DBMS_OUTPUT.put_line ('Error ' ||SQLERRM|| DBMS_UTILITY.format_error_backtrace);
    END;gives o/p :
    Old collection - name1
    Old collection - name2
    Old collection - name3
    Old collection - 3
    New collection -- name1
    New collection -- name2
    New collection -- name3
    New collection -- 3
    In FOR Loop --- name1
    In FOR Loop --- name2
    In FOR Loop --- name3Refer this link -- http://docs.oracle.com/cd/E11882_01/appdev.112/e17126/tuning.htm#CIHGGBGF
    Edited by: ranit B on Dec 26, 2012 2:29 PM
    -- code modified
    Edited by: ranit B on Dec 26, 2012 2:45 PM
    -- code 'again' updated -- FOR LOOP added

  • RH creates a frame around tables when generating printed documentation

    Hi,
    We import FrameMaker documents into RoboHelp 9 and then we generate printed documentation (Word documents).
    In the generated Word documents, all tables appear in a frame or an additional table cell.
    This did not happen in RH7.
    In RH itself it seems OK.
    Is there a hidden setting somewhere that controls this behavior?
    Thanks,
    Rakefet

    I found out that when we import the FM document into RH, RH adds the following lines in the html file:
    before the table:
    <?rh-align_start align="left" ?>
    after the table:
    <?rh-align_end ?>
    When I manually delete these lines, the tables in the generated Word files are OK.
    Is there something I can do in FM or in RH so that these lines are not added?
    Thanks,
    Rakefet

  • InternalVirtualForm issue - how to grab selected from from table when on

    I have a table with "internalVirtualForm" (IVF) attribute turned on. I am using the "single-selected row" method of determining which row was selected so that I can work with that data in text fields further down on the page.
    private TableSelectPhaseListener tablePhaseListener1 = new TableSelectPhaseListener();
    public void setSelected(Object object) {}
    public Object getSelected(){}
    public Object getSelectedValue() {
    RowKey[] selectedRowKeys = getTableRowGroup1().getSelectedRowKeys();
    etc.
    When IVF attribute is turned on how do I reference the table to retrieve the RowKey?
    With IVF turned on selectedRowKeys == null; with IVF off selectedRowKeys == 1.
    Making use of IVF seems to be key to my being able to use the "required" attribute of the textfields that are further down on my page.
    Thanks,
    Rebecca

    hi,
    Once the flag value is set, use modify statement for that to be reflected in your table.
    This code will solve your purpose.
    loop at wt_itab into wa_itab.
    if(condition)
    wa_itab-flag = 'x'.
    MODIFY TABLE wt_itab FROM wa_itab TRANSPORTING FLAG.
    endif.
    endloop.
    This statement changes the value of flag for that particular record in the loop.
    Thanks
    Sharath

  • Selecting The Correct Fact Table

    I have an environment that has multiple dimension tables and multiple fact tables.
    I have multiple Presentation Catalogues to organise these.
    In PCat1 I have multiple dimensions and two Facts; F1 & F2.
    In answers I have build a filter to restrict the dashboard to show only selected data from two dimensions; D1 & D2. The filter is built using PCat1.
    The facts F1 and F2 do both have relationships defined to D1 and D2.
    When I check the SQL generated by the filter (as the results do not look correct) I can see that the SQL is referencing a fact table F3 that is NOT in PCat1.
    F3 does contain valid joins to D1 and D2 but F3 is not in PCat1 so I do not know why it is being used.
    How do I FORCE BIEE to generate SQL that is sourced ONLY from the presentation catalogue that was selected when I created the filter in answers.
    I am using version 10.1.3.3

    Excellent, that seems to have done the trick.
    Right click on the presentation catalogue select properties and selected my fact table.
    Need to test ALL my reports now.
    Thanks for your help<br>
    Ross

  • How to join Dimensions and Fact Tables in OBIEE

    Hi All,
    I need to create report which need to get the information from two fact tables and 7 dimensions. The granularity is not same in both the fact tables. One fact table is having common keys between all the dimension tables and second fact table have only two dimension keys but with different names. My requirement is to create the report by taking the measures from both the fact tables.
    I have created joins between the second fact table and two dimension tables in physical and BMM layer and also set the highest level for all other dimension tables in the LTS of second fact table. when am creating report by taking the measures from both the fact tables, data is not getting for the measure which taken from the second fact table. Please advice me how to get the data for the measure which taken from the second fact table.
    Thanks in Advancec !!

    You have to use the level-base measure capabilities.
    http://gerardnico.com/wiki/dat/obiee/bi_server/design/fact_table/level_based_measure_calculations
    For all measures of the second fact table with the lowest grain (with two dimension keys), set for all dimension where you don't have any key the logical level to the "All" or "Total".
    And UNSET the highest level of the LTS for the second fact table.
    Success
    Nico

  • F and E Fact Tables

    Hi,
    What is the difference between F fact table and E fact table?
    When we create an Infocube which fact table is generated?
    Thanks,
    Soujanya

    Hi ,
    Difference between 'F' fact table & an 'E' Fact table
    A cube has 2 fact tables - E and F. When the requests in the cube are not compressed the data exists in the F fact table and when the requests are compressed the data lies in the E fact table.
    When the requests are compressed all the request ids are lost (set to NULL) and you would not be able to select/delete the data by request id. The data in the E fact table is compressed and occupies lesser space than F fact table.
    When you load a data target, say a cube, the data is stored in the F fact table. If the cube is compressed, the data in the F fact table is transferred to the E fact table.
    The F-table uses b-tree indexes the E-Table uses bitmap indexes. Index, Primary Index (The primary index is created automatically when the table is created in the database.).  Secondary Index (usually abap tables), Bitmap Index(Bitmap indexes are created by default on each dimension column of a fact table), and B-Tree Index
    Bex access the records from F-table or E- Table of InfoCube
    Bex access both F and E fact tables. If data exists in both tables, it picks from both.
    If the cube is not compressed it takes from F table, if fully compressed it takes from E table, partial compression - both F and E.
    Roll-up adds the copy of records from F or E table to the aggregate tables. The records are not moved from F or E.
    Also check the below SDN thread.
    What is the difference between Fact tables F & E?
    Hope the above info is helpful.
    Cheers
    VA
    Edited by: Vishwa  Anand on Aug 31, 2010 12:58 PM

Maybe you are looking for

  • BAPI  for Creating Service Purchase Order

    Hi All,   I am not able to create service po using bapi, after passing the parameters   ls_polimits-LIMIT     = '30'.   ls_polimits-EXP_VALUE = '20'.   APPEND : ls_polimits TO gt_polimits.     ls_poserv-quantity = '10'.     ls_poserv-base_uom = 'AU'.

  • Openoffice and fish://

    Hi everyone. I used to be able to fish:// into one of my servers home directory and use openoffice documents directly from there. About two or three weeks ago, After an update (I think) -- I noticed that this functionality stoped working for me... At

  • Define custom made aggregation rules

    Hi, If I edit a column formula in Answers, many different aggregation rules (sum, average, count etc) are availabe. However, it doesn't seem possible to define my own aggregation rule, somelike "SUM(revenue)/9". Isn't this possible? TIA! Edited by: E

  • Page will not load, wikimedia page displayed in place.

    I have had this happen randomly on safari on two different machines and not always with the same website. Currently I am trying to go to Woot.com. Woot.com is displayed as the url but the screen is displaying the wiki catalogue page from Wikimedia Fo

  • Problem with 'quick select' tool.

    In my copy of CS5 Extended, when I select the 'quick select' tool, it takes forever for it to create the selection. During this time, the window is frozen - can't change anything else, can't select edit, can't select anything. Does anyone have any id