Fact Table Count Problem

When I do an SE16 on the fact table for 0CCA_C11 i come up with a number close to 175 million.   However if I add up all the records added to the cube since it was initialized, the number is around 20 million.
Can anyone explain the discrepancy between these two numbers?

You may not be looking at all the requests in the cube. In the manage screen, change the dates so that you can see even the old requests (requests loaded some years back) and click refresh. When you get all the requests ever loaded into the cube, now try adding the records...
Hope this helps.

Similar Messages

  • Common diemsions and more then one fact table join problem

    Hi,
    I have 5 common dimension and 3 fact table which in the same subject area. When I want to display results from more then one fact table sending database then query more then one and I think BI server join this two different result on OBI server. But I think if obi server sending database query for exp. WITH SAWITH0 .... the results get effective.
    +++002002:2ea0000:2ea000f:----2009/03/14 10:12:59
    -------------------- SQL Request:
    SET VARIABLE QUERY_SRC_CD='Report';SELECT "- Common Dimensions"."Year Month" saw_0, "- Subs. Tariff"."Subscriber Current Tariff Type" saw_1, "- Common Measures".Arpu saw_2, "- Common Measures"."Gross Margin" saw_3, "- Call Out"."Callout Dur" saw_4, "- Case".Case_Info_Num saw_5 FROM "CUSTOMER PROFILING" WHERE ("- Common Dimensions"."Year Month" = 200901) AND ("- Subs. Tariff"."Subscriber Current Tariff Type" = 'PREPAID') ORDER BY saw_0, saw_1
    +++002002:2ea0000:2ea000f:----2009/03/14 10:12:59
    -------------------- General Query Info:
    Repository: Star, Subject Area: CUSTOMER PROFILING REV, Presentation: CUSTOMER PROFILING
    +++002002:2ea0000:2ea000f:----2009/03/14 10:13:00
    -------------------- Sending query to database named CENTRAVEA (id: <<471777>>):
    select T223282.DIM_TIME_MONTH_ID as c1,
    T221204.DIM_SUBS_CURRENT_TARIFF_TYPE as c2,
    avg(T223490.FACT_CP_ARPU) as c3,
    sum(T223490.FACT_CP_GROSS_MARGIN) as c4,
    sum(T223490.FACT_CP_CO_DUR) as c5
    from
    DM.DIM_SUBSCRIBER T221204 /* A_DIM_SUBSCRIBER */ ,
    DM.DIM_TIME_MONTH T223282 /* A_DIM_TIME_MONTH */ ,
    DM.FACT_CUST_PROFILING_PART3 T223490 /* A_FACT_CUST_PROFILING_PART3 */
    where ( T221204.DIM_SUBS_ID = T223490.DIM_SUBS_ID and T221204.DIM_SUBS_CURRENT_TARIFF_TYPE = 'PREPAID' and T223282.DIM_TIME_MONTH_ID = T223490.DIM_TIME_MONTH_ID and T223282.DIM_TIME_MONTH_ID = 200901 and T223490.DIM_TIME_MONTH_ID = 200901 )
    group by T221204.DIM_SUBS_CURRENT_TARIFF_TYPE, T223282.DIM_TIME_MONTH_ID
    order by c1, c2
    +++002002:2ea0000:2ea000f:----2009/03/14 10:13:00
    -------------------- Sending query to database named CENTRAVEA (id: <<471881>>):
    select T223282.DIM_TIME_MONTH_ID as c1,
    T221204.DIM_SUBS_CURRENT_TARIFF_TYPE as c2,
    sum(T223294.FACT_CP_CASE_INFO_NO) as c3
    from
    DM.DIM_SUBSCRIBER T221204 /* A_DIM_SUBSCRIBER */ ,
    DM.DIM_TIME_MONTH T223282 /* A_DIM_TIME_MONTH */ ,
    DM.FACT_CUST_PROFILING_PART1 T223294 /* A_FACT_CUST_PROFILING_PART1 */
    where ( T221204.DIM_SUBS_ID = T223294.DIM_SUBS_ID and T221204.DIM_SUBS_CURRENT_TARIFF_TYPE = 'PREPAID' and T223282.DIM_TIME_MONTH_ID = T223294.DIM_TIME_MONTH_ID and T223282.DIM_TIME_MONTH_ID = 200901 and T223294.DIM_TIME_MONTH_ID = 200901 )
    group by T221204.DIM_SUBS_CURRENT_TARIFF_TYPE, T223282.DIM_TIME_MONTH_ID
    order by c1, c2
    I have another subject area and which defined like this subject area contain two dimension and 5 fact table. If I want to display results on this subject area I can see best sql for my database
    My problem is why this two different subject areas create different queries. I think following query is the best for database.
    Thanks for your help
    +++002002:2ea0000:2ea0015:----2009/03/14 10:30:06
    -------------------- SQL Request:
    SET VARIABLE QUERY_SRC_CD='Report';SELECT "Dim - Segments"."Marketing Segment" saw_0, "Fact - Campaign Response"."Fact Campaign Award Amount" saw_1, "Fact - Customer Interaction"."Issue Response Cost" saw_2 FROM "AVEA ALL" ORDER BY saw_0
    +++002002:2ea0000:2ea0015:----2009/03/14 10:30:06
    -------------------- General Query Info:
    Repository: Star, Subject Area: AVEA ALL, Presentation: AVEA ALL
    +++002002:2ea0000:2ea0015:----2009/03/14 10:30:06
    -------------------- Sending query to database named AVEA ALL (id: <<474694>>):
    WITH
    SAWITH0 AS (select sum(T51461.FACT_CMPGN_AWARD_AMOUNT) as c1,
    T49384.DIM_MARKETING_SGMNT_DESC as c2
    from
    DM.DIM_MARKETING_SEGMENT T49384 /* DIM_BI_MARKETING_SEGMENT */ ,
    DM.FACT_CMPGN_RESPONSE T51461 /* FACT_BI_CMPGN_RESPONSE */
    where ( T49384.DIM_MARKETING_SGMNT_ID = T51461.DIM_MARKETING_SGMNT_ID )
    group by T49384.DIM_MARKETING_SGMNT_DESC),
    SAWITH1 AS (select sum(T51503.FACT_CUST_INT_ISSUE_RES_COST) as c1,
    T49384.DIM_MARKETING_SGMNT_DESC as c2
    from
    DM.DIM_MARKETING_SEGMENT T49384 /* DIM_BI_MARKETING_SEGMENT */ ,
    DM.FACT_CUST_INTERACTN T51503 /* FACT_BI_CUST_INTERACTN */
    where ( T49384.DIM_MARKETING_SGMNT_ID = T51503.DIM_MARKETING_SGMNT_ID )
    group by T49384.DIM_MARKETING_SGMNT_DESC)
    select distinct case when SAWITH0.c2 is not null then SAWITH0.c2 when SAWITH1.c2 is not null then SAWITH1.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

    I find solution on Oracle® Business Intelligence Suite Enterprise Edition Release Notes.
    If you use a version of Oracle Database 10g Release 2 prior to 10.2.0.3, then you might encounter an issue with a Full Outer Join that causes severe database performance issues and appears to hang the database when the Oracle BI Server sends to the database SQL queries that include WITH clauses.
    To work around this issue when using Oracle Database 10g Release 1 or 2, upgrade to Oracle Database 10g Release 2 Patch Set 2 (for 10.2.0.3). For performance reasons, this is the preferred workaround.
    To work around this issue without installing Patch Set 2, modify the Database Features table using the Administration Tool. This configuration prevents the Oracle BI Server from sending SQL constructs that expose the issue in an unpatched Oracle Database 10g.
    To modify the Database Features table:
    In the Administration Tool, open the properties of the Physical Database metadata object.
    Navigate to the Features tab.
    Ensure the values for the PERF_PREFER_MINIMAL_WITH_USAGE and PERF_PREFER_INTERNAL_STITCH_JOIN entries are selected, that is, set to True.

  • 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.

  • Problem with populating a fact table from dimension tables

    my aim is there are 5 dimensional tables that are created
    Student->s_id primary key,upn(unique pupil no),name
    Grade->g_id primary key,grade,exam_level,values
    Subject->sb_id primary key,subjectid,subname
    School->sc_id primary key,schoolno,school_name
    year->y_id primary key,year(like 2008)
    s_id,g_id,sb_id,sc_id,y_id are sequences
    select * from student;
    S_ID UPN FNAME COMMONNAME GENDER DOB
    ==============================
    9062 1027 MELISSA ANNE       f  13-OCT-81
    9000 rows selected
    select * from grade;
          G_ID GRADE      E_LEVEL         VALUE
            73 A          a                 120
            74 B          a                 100
            75 C          a                  80
            76 D          a                  60
            77 E          a                  40
            78 F          a                  20
            79 U          a                   0
            80 X          a                   0
    18 rows selectedThese are basically the dimensional views
    Now according to the specification given, need to create a fact table as facts_table which contains all the dim tables primary keys as foreign keys in it.
    The problem is when i say,I am going to consider a smaller example than the actual no of dimension tables 5 lets say there are 2 dim tables student,grade with s_id,g_id as p key.
    create materialized view facts_table(s_id,g_id)
    as
    select  s.s_id,g.g_id
    from   (select distinct s_id from student)s
    ,         (select distinct g_id from grade)gThis results in massive duplication as there is no join between the two tables.But basically there are no common things between the two tables to join,how to solve it?
    Consider it when i do it for 5 tables the amount of duplication being involved, thats why there is not enough tablespace.
    I was hoping if there is no other way then create a fact table with just one column initially
    create materialized view facts_table(s_id)
    as
    select s_id
    from student;then
    alter materialized view facts_table add column g_id number;Then populate this g_id column by fetching all the g_id values from the grade table using some sort of loop even though we should not use pl/sql i dont know if this works?
    Any suggestions.

    Basically your quite right to say that without any logical common columns between the dimension tables it will produce results that every student studied every sibject and got every grade and its very rubbish,
    I am confused at to whether the dimension tables can contain duplicated columns i.e column like upn(unique pupil no) i will also copy in another table so that when writing queries a join can be placed. i dont know whether thats right
    These are the required queries from the star schema
    Design a conformed star schema which will support the following queries:
    a. For each year give the actual number of students entered for at A-level in the whole country / in each LEA / in each school.
    b. For each A-level subject, and for each year, give the percentage of students who gained each grade.
    c. For the most recent 3 years, show the 5 most popular A-level subjects in that year over the whole country (measure popularity as the number of entries for that subject as a percentage of the total number of exam entries).
    I written the queries earlier based on dimesnion tables which were highly duplicated they were like
    student
    =======
    upn
    school
    school
    ======
    school(this column substr gives lea,school and the whole is country)
    id(id of school)
    student_group
    =============
    upn(unique pupil no)
    gid(group id)
    grade
    year_col
    ========
    year
    sid(subject id)
    gid(group id)
    exam_level
    id(school id)
    grades_list
    ===========
    exam_level
    grade
    value
    subject
    ========
    sid
    subject
    compulsory
    These were the dimension table si created earlier and as you can see many columns are duplicated in other tables like upn and this structure effectively gets the data out of the schema as there are common column upon which we can link
    But a collegue suggested that these dimension tables are wrong and they should not be this way and should not contain dupliated columns.
    select      distinct count(s.upn) as st_count
    ,     y.year
    ,     c.sn
    from      student_info s
    ,     student_group sg
    ,     year_col y
    ,     subject sb
    ,     grades_list g
    ,     country c
    where      s.upn=sg.upn
    and     sb.sid=y.sid
    and     sg.gid=y.gid
    and     c.id=y.id
    and     c.id=s.school
    and      y.exam_lev=g.exam_level
    and      g.exam_level='a'
    group by y.year,c.sn
    order by y.year;This is the code for the 1st query
    I am confused now which structure is right.Are my earlier dimension tables which i am describing here or the new dimension tables which i explained above are right.
    If what i am describing now is right i mean the dimension tables and the columns are allright then i just need to create a fact table with foreign keys of all the dimension tables.

  • Problem relating multiple fact tables

    I have 2 fact tables in my cube (Encounter and Visit).   Every visit has at least 1 encounter but not every encounter has a visit.  I also have a department dimension which is related to both facts, and an appointment status dimension which is
    related only to Visit Fact.  
    The users want to look at the count of encounters by department and appointment status.  At first I was having an issue with this because when using the encounter count, I would end up with the same value in each row.  So I was able to create a
    dimension from my Visit Fact table and then have Encounter Fact reference the appointment status dimension through the Visit Fact dimension.  The problem I am having now is that since not every encounter has a visit, that my count of encounters only includes
    the encounters that have visits.  What I currently have is "joining out" the encounters that don't have a visit. How do I work around this so that all of the records from Encounter Fact are in the cube regardless of whether or not they have
    a visit?
    Do I need to implement unknown members in this case?  I'm not sure where to go.
    Thanks for the help,
    Andy

    So yes, if you are going to have some nulls you want to implement unknown members either
    1. "manually" in the ETL by making yourself a custom-created unknown record in each dimension with the values your users want to see in each column (e.g. unknown record might have product_category='Misc')
    2. using the built-in analysis services stuff - convert null to unknown
    Typically in my cubes facts are related only to dimensions, not directly to each other.  So I think I am not getting a full description of the relationships in your cube so I can't comment on your overall setup.  I guess I would say if your can
    determine the appointment status of an encounter based on the visit (or null/unknown if visit is null/unknown), then you should go ahead and use that information to directly relate encounter and appointment status.  I would tend to do it in the ETL, you
    can always use a view layer over the datamart dimension tables to do this an easy way without snowflaking your actual cube with reference dimensions.

  • Calculating count from two fact tables

    Hi Guys,
    My requirement,
    i have two fact table F1, F2 connected with a D1 dimension table, all table connected with a id column
    F1 ---------D1------------F2
    n 1 1 n
    i want to find out the distinct count from Fact F1 where the value also present in F2( ie. F1.id= F2.id condition).
    this measure usefull through out my project so i want create a logical column, how to create it.
    I tried this way:
    i Created two fact table in to one fact table by adding logical source, and created a logical column from existing logical source where F1.id=D1.id and D1.id=F2.Id but it is wrong
    Can any suggestion for solve my problem.
    Thanks in advance!!!

    Hi,
    You can create an opaque view in physical layer and wrire a sql like
    Select f1.id,count(*) from f1,f2 where f1.id=f2.id group by f1.id.Join this through id with dimesnion and add this fact table in LTS of your fact and use count(*) in report.
    Regards,
    Sandeep

  • Counting fact table records within brackets

    Hi,
    I have a star schema setup in OBIEE, consisting of a fact table of transaction records, linked to a customer dimension and a time dimension via PK-FK relations.
    One of the requirements is to count the number of customers based on how many transactions they have done per time period. I imagine solving this by creating logical colums such as "# customers (1-10 transactions)", "# customers (11-20 transactions)", etc. The counting should be based on the current level of drill-down in the time dimension.
    Any advice on how to approach this would be greatly appreciated
    best regards
    M

    Thanks for you reply, it brought me a lot closer to a solution. So far i've been able to create a bracket attribute on the customer dimension (via Answers and then into Administrator, as advised). I've verified this against the database, and it categorizes each customer correctly.
    The remaining challenge is that I want to see the count within each category on an aggregate bracket level rather than per customer. Using one attribute ("customer bracket") which can take on one of several values (e.g. "0", "1-10", "11-20", etc.) i'm not sure how to accomplish this.
    As a workaround i tried creating one column in Answers for each bracket, taking on the value 1 for records falling within that bin, and 0 for all other records. Treating the column as numeric, and adding a sub total (sum), i get the answers i want for each bin. The problem here however, is that one line (value 0 or 1) is shown for each customer record, which makes the report useless for most practical intents and purposes as thousands of records are shown.
    Any thoughts on which method i should go ahead with, and how?
    regards
    M

  • PL/SQL- Problem in creating a partitioned fact table using select as syntax

    Hi All,
    I am trying to create a clone(mdccma.fact_pax_bkng_t) of existing fact table (mdccma.fact_pax_bkng) using dynamic pl/sql. However, pl/sql anonymous block errors out with following error:
    SQL> Connected.
    SQL> SQL> DECLARE
    ERROR at line 1:
    ORA-00911: invalid character
    ORA-06512: at "SYS.DBMS_SYS_SQL", line 1608
    ORA-06512: at "SYS.DBMS_SQL", line 33
    ORA-06512: at line 50
    Here is pl/sql block:
    -- CREATING FPB_T
    DECLARE
    v_owner VARCHAR2(32) := 'MDCCMA';
    v_table_original VARCHAR2(32) := 'FACT_PAX_BKNG';
    v_table VARCHAR2(32) := 'FACT_PAX_BKNG_T';
    v_tblspc VARCHAR2(32) := v_owner||'_DATA';
    CURSOR c_parts IS SELECT TABLESPACE_NAME, PARTITION_NAME,HIGH_VALUE, ROW_NUMBER() OVER (ORDER BY PARTITION_NAME) AS ROWNUMBER
    FROM USER_TAB_PARTITIONS
    WHERE TABLE_NAME = v_table_original
    ORDER BY PARTITION_NAME;
    v_cmd CLOB := EMPTY_CLOB();
    v_cmd3 varchar2(300) := 'CREATE TABLE ' ||v_owner||'.'||v_table||' TABLESPACE '||v_tblspc
    ||' NOLOGGING PARTITION BY RANGE'||'(' ||'SNAPSHOT_DTM '||')' ||'(';
    v_part VARCHAR2(32);
    v_tblspc_name VARCHAR2(32);
    v_row number;
    v_value LONG;
    v_tmp varchar2(20000);
    v_cur INTEGER;
    v_ret NUMBER;
    v_sql DBMS_SQL.VARCHAR2S;
    v_upperbound NUMBER;
    BEGIN
    v_cmd := v_cmd3;
    OPEN c_parts;
    FETCH c_parts INTO v_tblspc_name, v_part,v_value, v_row;
    WHILE c_parts%FOUND
    LOOP
    IF (v_row = 1) THEN
    v_tmp := ' PARTITION '||v_part||' VALUES LESS THAN ' ||'('|| v_value||')'||' NOLOGGING TABLESPACE '||v_tblspc_name;
    ELSE
    v_tmp := ', PARTITION '||v_part||' VALUES LESS THAN ' ||'('|| v_value||')'||' NOLOGGING TABLESPACE '||v_tblspc_name;
    END IF;
    v_cmd := v_cmd || v_tmp;
    -- DBMS_OUTPUT.PUT_LINE(v_cmd);
    FETCH c_parts INTO v_tblspc_name, v_part,v_value, v_row;
    END LOOP;
    -- DBMS_OUTPUT.PUT_LINE('Length:'||DBMS_LOB.GETLENGTH(v_cmd));
    v_cmd := v_cmd||')'||' AS SELECT ' || '*'||' FROM ' || v_owner||'.'|| v_table_original ||' WHERE '||'1'||'='||'2'||';';
    v_upperbound := CEIL(DBMS_LOB.GETLENGTH(v_cmd)/256);
    FOR i IN 1..v_upperbound
    LOOP
    v_sql(i) := DBMS_LOB.SUBSTR(v_cmd
    ,256 -- amount
    ,((i-1)*256)+1 -- offset
    END LOOP;
    v_cur := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(v_cur, v_sql, 1, v_upperbound, FALSE, DBMS_SQL.NATIVE);
    v_ret := DBMS_SQL.EXECUTE(v_cur);
    CLOSE c_parts;
    DBMS_OUTPUT.PUT_LINE(v_cmd);
    -- EXECUTE IMMEDIATE v_cmd ;
    END;
    The above pl/sql creates a DDL for partitioned fact table(new) based on an existing fact table and get executes through CLOB.
    Please look into the issue and let me know any changes or modifications/suggestions that are required to fix the issue. Any help is appreciated.
    Thank You,
    Sudheer

    Think this is your problem:
    v_cmd := v_cmd||')'||' AS SELECT ' || '*'||' FROM ' || v_owner||'.'|| v_table_original ||' WHERE '||'1'||'='||'2'||';';Remove the SQL terminator ';' ... dynamic SQL doesn't require it, try this instead:
    v_cmd := v_cmd||')'||' AS SELECT ' || '*'||' FROM ' || v_owner||'.'|| v_table_original ||' WHERE '||'1'||'='||'2';Thanks
    Paul

  • Select count from large fact tables with bitmap indexes on them

    Hi..
    I have several large fact tables with bitmap indexes on them, and when I do a select count from these tables, I get a different result than when I do a select count, column one from the table, group by column one. I don't have any null values in these columns. Is there a patch or a one-off that can rectify this.
    Thx

    You may have corruption in the index if the queries ...
    Select /*+ full(t) */ count(*) from my_table t
    ... and ...
    Select /*+ index_combine(t my_index) */ count(*) from my_table t;
    ... give different results.
    Look at metalink for patches, and in the meantime drop-and-recreate the indexes or make them unusable then rebuild them.

  • Distinct count of dimension business key in fact table

    In my cube I have a fact table which joins to a patient dimension.  The patient dimension is a type 2.  What I would like to do is get a distinct count of patients who have records in the fact table.   The business key in the patient dimension
    is the PrimaryMrn.  So a SQL query would look like this.
    SELECT count(distinct PrimaryMrn)
    FROM EncounterFact e
    INNER JOIN PatientDim p
    on e.PatientKey = p.PatientKey
    Is it possible to do this via MDX?
    Thanks for the help.

    If you have to distinct count an attribute in a SCD 2, you might choose between:
    Denormalizing that attribute in the fact table, and the create a classical DISTINCT COUNT measure
    Use a many-to-many approach - see the "Distinct Count" scenario in the Many-to-Many White paper here:
    http://www.sqlbi.com/articles/many2many (for both Multidimensional and Tabular
    If you use Tabular, you might want to read also this pattern:
    http://www.daxpatterns.com/distinct-count/
    Marco Russo http://www.sqlbi.com http://www.powerpivotworkshop.com http://sqlblog.com/blogs/marco_russo

  • Distinct count for multiple fact tables in the same cube

    I'm fairly new to working with SSAS, but have been working with DW environments for many years.
    I have a cube which has 4 fact tables.  The central fact table is Encounter and then I also have Visit, Procedure and Medication.  Visit, Procedure and Medication all join to Encounter on Encounter Key.  The relationship between Encounter
    and Procedure and Encounter and Medication are both an optional 1 to 1.  The relationship between Encounter and Visit is an optional 1 to many.
    Each of the fact tables join to the Patient dimension on the Patient Key.  The users are looking for a distinct count of patients in all 4 fact tables.  
    What is the best way to accomplish this so that my cube does not talk all day to process?  Please let me know if you need any more information about my cube in order to answer this.
    Thanks for the help,
    Andy

    Hi Andy,
    Each distinct count measure cause an ORDER BY clause in the SELECT sent to the relational data source during processing. In SSAS 2005 or later, it creates a new measure group for each distinct count measure(it's a technique strategy for improving perormance).
    Besides, please take a look at the following distinct count optimization techniques:
    Create Customized Aggregations
    Define a Processing Plan
    Create Partitions of Equal Size
    Use Partitions Comprised of a Distinct Range of Integers
    Distribute the Hash of Your UserIDs
    Modulo Function
    Hash Function
    Choose a Partitioning Strategy
    For more detail information, please refer to the article below:
    Analysis Services Distinct Count Optimization:
    http://www.microsoft.com/en-us/download/details.aspx?id=891
    In addition, here is a good article about SSAS Best Practices for your reference:
    http://technet.microsoft.com/en-us/library/cc966525.aspx
    If you have any feedback on our support, please click
    here.
    Hope this helps.
    Elvis Long
    TechNet Community Support

  • Problem querying over two fact tables

    The business requirement is that we want to be able to see sales for two different periods of times, over different brands, different Items' years and seasons per periods.
    So for the different dimensions I created alias having two tables in the physical layer
    for Brands, Shops and Items (tables) [These are the tables where I query for different brand, Item's year and different season]. The Business Model Schema looks like this:
    Items-----> SALES <------Brands Items 2-----> SALES 2 <------------Brands 2
    ^ ^
    TIMES TIMES 2 (TIMES JOINED WITH SALES AND TIMES 2 WITH SALES 2)
    and VENDORS connected to both SALES & SALES 2 left outer joined
    The need is that I need to query over two indepedent periods of time with independed dimensions but for a common dimension (Vendors).
    The presentation data simplified looks like this:
    Answers
    Vendor Sales Qty Sales 2 Qty
    1092 234 123
    The problem is that when a vendor doesn't exist in one period it doesn't come and in the other although there are sales. So when I query with the same filters (same period of time, Brands, Items' years and seasons) over these two fact tables I get the same sales and correct data. When there are different criteria then I lose data.
    The Query fired in the database is the following:
    select distinct case when D2.c4 is not null then D2.c4 when D1.c4 is not null then D1.c4 end as c1,
    D1.c3 as c4,
    D1.c1 as c5,
    D1.c2 as c6,
    cast(D1.c2 / nullif( D1.c1, 0) * 100 as DOUBLE PRECISION ) as c7,
    D2.c3 as c8,
    D2.c1 as c9,
    D2.c2 as c10,
    cast(D2.c2 / nullif( D2.c1, 0) * 100 as DOUBLE PRECISION ) as c11
    from
    (select sum(T43161.amnt_1) as c1,
    sum(T43161.mk_1) as c2,
    sum(T43161.qty_1) as c3,
    T7120.VE_NAME as c4
    from
    VE04_TBL T7120,
    GE04_COMPANY_TBL T43802,
    EI04_TBL T6931,
    Salesmcost T43161
    where ( T6931.EI_CODE = T43161.ei_code and T6931.VE_CODE = T7120.VE_CODE and T6931.GE_COMPANY_CODE = '1' and T6931.EI_SEASON_CODE = 'Χ' and T6931.EI_YEAR = '2009' and T7120.GE_COMPANY_CODE = '1' and T7120.VE_CODE = T43161.ve_code and T43161.ge_company_code = T43802.GE_COMPANY_CODE and T43802.GE_COMPANY_NAME = '*** Φ. & Κ. ΛΕΜΟΝΗΣ ΑΕΒΕ ****' and T43802.LIST_ITEM_IND = '1' and T43161.trans_date >= ADD_MONTHS(TO_DATE('2010-05-12' , 'YYYY-MM-DD'), -7 * 12 ) and T43161.trans_date between TO_DATE('2009-01-01' , 'YYYY-MM-DD') and TO_DATE('2009-01-31' , 'YYYY-MM-DD') )
    group by T7120.VE_NAME
    ) D1,
    (select sum(T44099.amnt_1) as c1,
    sum(T44099.mk_1) as c2,
    sum(T44099.qty_1) as c3,
    T7120.VE_NAME as c4
    from
    EI04_TBL T44615 /* EI04_TBL 2 */ ,
    VE04_TBL T7120,
    GE04_COMPANY_TBL T43802,
    Salesmcost T44099 /* Salesmcost_2 */
    where ( T7120.VE_CODE = T44099.ve_code and T7120.VE_CODE = T44615.VE_CODE and T7120.GE_COMPANY_CODE = '1' and T43802.GE_COMPANY_CODE = T44099.ge_company_code and T43802.GE_COMPANY_NAME = '*** Φ. & Κ. ΛΕΜΟΝΗΣ ΑΕΒΕ ****' and T43802.LIST_ITEM_IND = '1' and T44099.ei_code = T44615.EI_CODE and T44615.GE_COMPANY_CODE = '1' and T44615.EI_SEASON_CODE = 'Χ' and T44615.EI_YEAR = '2008' and T44099.trans_date between TO_DATE('2008-01-01' , 'YYYY-MM-DD') and TO_DATE('2008-01-31' , 'YYYY-MM-DD') )
    group by T7120.VE_NAME
    ) D2
    where ( D1.c4 = D2.c4 ) /*<------- I think that this join creates the problem*/
    order by c1
    Edited by: user1198434 on 12 Μαϊ 2010 5:14 πμ
    Edited by: user1198434 on 12 Μαϊ 2010 5:41 πμ

    Hi,
    go through this
    http://obiee101.blogspot.com/search/label/OUTER%20JOIN
    I think you are new to the forum. try searching through some of the famous obiee forums. Gurus have already covered most of the issues. few are,
    http://obiee101.blogspot.com
    http://oraclebizint.wordpress.com/
    http://gerardnico.com/weblog/
    http://108obiee.blogspot.com/
    thanks,
    karthick

  • Problems querying over two fact tables

    I have a problem! could anyone help???
    I have two fact tables (coming out from two select statements in the physical layer).
    SALES 2 is an alias of SALES. These two tables join with some dimensions. The schema is this:
    DIMENSIONS 1 >SALES <---COMMON DIMS----> SALES 2 <-- DIMENSIONS 2
    SALES has three separate dimensions joining only with it.
    SALES 2 the same.
    The problem is that there are two common dimensions between them. When I run a query for the same criteria the results are correct. But when I am running the query for different criteria SALES are affected by SALES 2 messing up the results. Probably the problem occurs by inner joining via the common dimensions. Can anyone help me please???? THANKS IN ADVANCE!

    Thank you very much for your patience....Here is the SQL:
    SELECT VE04_TBL.VE_NAME saw_0, SALES.qty_1 saw_1, "SALES 2".qty_2 saw_2, REPORT_SUM(saw_1 BY ), REPORT_SUM(saw_2 BY )
    FROM lpvemprofit
    WHERE (TIMES.trans_date BETWEEN date '2009-01-01' AND date '2009-01-10')
    AND (EI04_TBL.EI_YEAR = '2009') <-----(Item's Year)
    AND (EI04_TBL.EI_SEASON_CODE IN ('R', 'Ε', 'Χ')) <----- (Item's Season)
    AND (GE_SHOP_TBL.Brand = 'Καλογήρου') <-----(Shop's Brand)
    AND ("TIMES 2"."trans_date 2" BETWEEN date '2008-01-01' AND date '2008-01-10')
    AND ("GE_SHOP_TBL 2"."Brand 2" = 'Καλογήρου')
    AND ("EI04_TBL 2".EI_YEAR = '2008')
    AND ("EI04_TBL 2".EI_SEASON_CODE IN ('R', 'Ε', 'Χ')) ORDER BY saw_0

  • Problem: two fact tables and one conformed dimension

    Hi everyone!
    I need to solve this situation:
    I have two fact tables, let's say F1 and F2, that are both linked to D1, my conformed dimension
    I just need to select fields from D1 but I know that, when querying, OBIEE links it to a fact table anyway..how does it choose the fact table? That is, if I only want fields from D1, does the system queries also from F1 or F2? Is it a random choice?
    Is there a way to "force" this choice, telling the system for example to choose only from F1?
    Is there a workaround to solve this situation? Remember, I only need fields from D1.
    Thanks!!

    The solution of your problem is "Implict Fact Column"
    Go to presentation layer and double click on your subject area. then you will see Implict fact column option. click on set. give corresponding fact column there( in your case give F1 fact column)
    references: http://oracle-bi.siebelunleashed.com/articles/implicit-fact-column/
    Thanks
    GSR
    Edited by: GSR on Mar 20, 2012 3:22 PM

  • Multiple fact tables, aggregation and model problems

    Hi,
    I am developing a OLAP Application with 2 dimensions (product,location) and a few measures (sales_qty, sales_value, sale_price, cost_price, promotion_price, average_market_price, etc). I also have a BiBean Crosstab to explore the data.
    I'm having the following problems:
    - The measures are in different fact tables.
    When using cwm2_olap_table_map.Map_FactTbl_Measure, I can only map the measures from the first fact table, the others return "Exact fetch returns more than the request number of rows".
    - The 'price_' measures shouldn't aggregate to higher levels of the dimension hierarchies. I have changed the default aggregation plan, but in the crosstab data is still shown in the higher levels. Is there any way to show N/A in levels that I don't want to aggregate?
    - How can I add a calculated field that is the result of a complex set of business rules (with IF/THEN/ELSE statements and calls to existing oracle functions) and precalculate it during batch?
    Thanks,
    Ricardo

    Keith, thanks for the quick answer!
    Some questions regarding your comments:
    1) The measures are in different fact tables
    - My application will show all the measures in the same report. My question is, will performance be affected by creating separate cubes or creating one cube? I believe that if I don't use an AW, it shouldn't, but I will have an AW. Performance is the main reason why I'm using Oracle OLAP. I need fast access to measures in different fact tables in one report. Those measures will be used in complex calculated fields, and probably in 'what if' analysis.
    2) When using cwm2_olap_table_map.Map_FactTbl_Measure, I can only map the measures from the first fact table, the others return "Exact fetch returns more than the request number of rows".
    Here is the complete script I am using to create the cube:
    execute cwm2_olap_cube.Create_Cube('OLAP','CUBE_REL_3','CUBE_REL_3','MY_CUBE','MY_CUBE');
    execute cwm2_olap_cube.add_dimension_to_cube('OLAP', 'CUBE_REL_3','OLAP', 'DIM_STORE');
    execute cwm2_olap_cube.add_dimension_to_cube('OLAP', 'CUBE_REL_3','OLAP', 'DIM_ITEM');
    -- MEASURES - FACT TABLE 1 (F_SALES)
    execute cwm2_olap_measure.create_measure('OLAP', 'CUBE_REL_3','SALES_MARGIN', 'Sales Margin','Sales Margin', 'Sales Margin');
    execute cwm2_olap_measure.create_measure('OLAP', 'CUBE_REL_3','SALES_QTY','Sales Quantity','Sales Quantity','Sales Quantity');
    execute cwm2_olap_measure.create_measure('OLAP', 'CUBE_REL_3','SALES_VALUE', 'Sales Value','Sales Value', 'Sales Value');
    -- MEASURES - FACT TABLE 2 (F_PVP_MIN_MAX)
    execute cwm2_olap_measure.create_measure('OLAP', 'CUBE_REL_3','PVP_MIN','pvp min','pvp min','pvp min');
    execute cwm2_olap_measure.create_measure('OLAP', 'CUBE_REL_3','PVP_MAX', 'pvp max','pvp max', 'pvp max');
    -- FACT TABLE 1 MAPPINGS
    execute cwm2_olap_table_map.Map_FactTbl_LevelKey('OLAP','CUBE_REL_3','OLAP','f_sales','LOWESTLEVEL','DIM:OLAP.DIM_STORE/HIER:STORE/LVL:L0/COL:COD_STORE;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER1/LVL:L0/COL:COD_ITEM;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER2/LVL:L0/COL:COD_ITEM;');
    execute cwm2_olap_table_map.Map_FactTbl_Measure('OLAP', 'CUBE_REL_3','SALES_MARGIN','OLAP','f_sales','SALES_MARGIN', 'DIM:OLAP.DIM_STORE/HIER:STORE/LVL:L0/COL:COD_STORE;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER1/LVL:L0/COL:COD_ITEM;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER2/LVL:L0/COL:COD_ITEM;');
    execute cwm2_olap_table_map.Map_FactTbl_Measure('OLAP', 'CUBE_REL_3','SALES_QTY', 'OLAP', 'f_sales', 'SALES_QTY','DIM:OLAP.DIM_STORE/HIER:STORE/LVL:L0/COL:COD_STORE;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER1/LVL:L0/COL:COD_ITEM;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER2/LVL:L0/COL:COD_ITEM;');
    execute cwm2_olap_table_map.Map_FactTbl_Measure('OLAP', 'CUBE_REL_3','SALES_VALUE', 'OLAP', 'f_sales', 'SALES_VALUE','DIM:OLAP.DIM_STORE/HIER:STORE/LVL:L0/COL:COD_STORE;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER1/LVL:L0/COL:COD_ITEM;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER2/LVL:L0/COL:COD_ITEM;');
    -- FACT TABLE 2 MAPPINGS
    execute cwm2_olap_table_map.Map_FactTbl_LevelKey('OLAP','CUBE_REL_3','OLAP','f_pvp_min_max','LOWESTLEVEL','DIM:OLAP.DIM_STORE/HIER:STORE_HIER1/LVL:L1/COL:COD_STORE;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER1/LVL:L4/COL:COD_ITEM;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER2/LVL:L4/COL:COD_ITEM;');
    execute cwm2_olap_table_map.Map_FactTbl_Measure('OLAP', 'CUBE_REL_3','PVP_MIN','OLAP','f_pvp_min_max','PVP_MIN', 'DIM:OLAP.DIM_STORE/HIER:STORE_HIER1/LVL:L1/COL:COD_STORE;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER1/LVL:L4/COL:COD_ITEM;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER2/LVL:L4/COL:COD_ITEM;');
    execute cwm2_olap_table_map.Map_FactTbl_Measure('OLAP', 'CUBE_REL_3','PVP_MAX', 'OLAP', 'f_pvp_min_max', 'PVP_MAX','DIM:OLAP.DIM_STORE/HIER:STORE_HIER1/LVL:L1/COL:COD_STORE;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER1/LVL:L4/COL:COD_ITEM;DIM:OLAP.DIM_ITEM/HIER:ITEM_HIER2/LVL:L4/COL:COD_ITEM;');
    -- CUBE VALIDATE
    execute CWM2_OLAP_VALIDATE.Validate_Cube('OLAP','CUBE_REL_3');
    The error is in the cwm2_olap_table_map.Map_FactTbl_Measure command for the first measure of the second fact table. Am I doing something wrong?
    Regarding issues 3) and 4), I will follow your sugestions. I'll get back to you on this later.
    Once again, thanks for the help, it is being most helpful.
    Ricardo Sá

Maybe you are looking for

  • How do I set up Windows Live in Mac Mail??

    I'm trying to redirerect my Windows Live e-mail account to my Mac mail app, as I have done with my gmail account. Is this possible?? If so, could someone please explain HOW. I've been getting really frustrated with this. **** windoze!

  • New Crack in Case After Phone Ran Hot

    Just a few days ago I took my phone out of my pocket and realized it was extremely warm. I woke it up to use it and immediately got the message that the battery was almost dead. It had a full charge from a couple of hours before and I had only used i

  • Issues in displaying the details in the transaction CS03

    Hi Group, I am facing an issue in the Transaction CS03 while displaying the EXTRAS->MORE->Parameter Eff Value Assignment as under: we have created a set of BOM items on the previous data(21.11.2011) with a different Changed documents for the two BOM

  • My CD burner won't work

    I have a new music CD I want to put on my iPod, but my CD stopped working. Is there a way to open iTunes on a different computer then put the songs in my iTunes library? I am at the library now and brought the music CD and also a flash drive thinking

  • How exactly does Voip sipphone internet calls work...

    Hi all, I've recently installed Gizmo Voip sipphone to my E90 to engage in internet calling, I was told to first purchase credit & calls are said to be cheap. I would like to know which is a better option, with connection to WiFi or GPRS? Does the ot