OBIEE query on dimensions only.

My customer has a requirement to report only on dimensions in OBIEE. I understand that the BI server needs at least one measure from a fact table in the query to perform a query. Is it possible to build a dummy fact in the logical layer that joins 2 or more dimensions to run such a query? If yes, how can this be accomplished?

Hello user,
Can you follow this blog by Rittman....Hoepfully it helps
Only thing you have to create a dummy table which should act like a fact table in your case.
http://www.rittmanmead.com/2009/08/oracle-bi-ee-10-1-3-4-1-reporting-on-non-transactional-dimension-values-equivalence-of-outer-joins/
Please let us know if it helpful and please don't forget to close the thread by awarding it :)

Similar Messages

  • Dimension only query to show manager and employees in one row

    Hi Gurus,
    I am creating a dimension only report. This report will show managers and their direct reportees. Since one manager can have several employees working under him, I am getting one row in the report for each employee. But our end users want employees to appear as comma seperated value for the manager. Thus each manager will have one and only one record in the report
    Current
    ======
    Manager Employee
    M1     E1
    M1     E2
    M1     E3
    Expected
    =======
    Manager Employee
    M1     E1, E2, E3
    Env : OBIEE 10.1.3.4 & Oracle 10.2.0.3.0
    Thanks for your help in advance

    Google ask Tom for string aggregation - there is a listagg equivalent available there, create on your DB then follow the same principal as the listagg / evaluate example.
    regards,
    Robert.

  • Dimension-only query

    There is some strange behaviour of OBI EE when I run a dimension-only query.
    I have two dimensions: dimension A and dimension B.
    Dimension A and dimension B are both related to fact table X.
    Dimension B is also related to fact table Y, dimension A isn't.
    When I run a dimension-only query with only columns of both dimension A and B, I want OBI EE to use fact table X for this dimension-only query.
    But for some reason OBI EE chooses fact table Y (as the most economical source?) and it returns an error message stating that dimension A is not correctly related to fact table Y. (Which is correct..)
    I know I can use an implicit fact column to solve this, but this is not the desired solution. I want to know why OBI EE uses fact table Y instead of fact table X and I would like to know how I can influence this behaviour.
    Anyone?
    Thanks!
    Stijn

    Pravin,
    thanks for your answer. Tables X and Y are not two logical table sources of the same logical fact table. X and Y are two separate logical fact tables, having their own logical table sources.
    Table X has only 2 foreign keys, one for dimension table A and one for dimension table B.
    Table Y has 6 foreign keys, and one of them is linked to dimension table B.
    Regards,
    Stijn

  • How to calculate Month on Month growth rates in an OBIEE query?

    Dear all,
    I would like to ask your help on how to calculate Month on Month growth rates [(last month - previous month)/previous month*100%] in an OBIEE query. This ratio should be always calculated for the last 2 available months.
    I have the following query:
    Month0 | Month1 | Month2
    Product A 500 | 100 | 200
    Product B 600 | 300 | 150
    would like to add Month on Month column as following:
    Month0 | Month1 | Month2 | Month on Month(%)
    Product A 500 | 100 | 200 | +100.00%
    Product B 600 | 300 | 150 | -50.00%
    I tried to add a calculated item but it was not successful because I could not find out how to show only the calculated column as % with 2 decimals. Moreover, I would ideally prefer to have an automatic update but as far as I understood it can't be done in the calculated item automatically
    I also tried to add a new column in the column area and to filter the results for the last month, then for the previous month and then based on it to calculate the needed ratio but unfortunately it also does not work out.
    Thank you your hints in advance

    Hi,
    The best way to solve this is using the Ago function. With this you can create a logical column for the previous month. Then you will have 2 columns available with which you can do your calculations.
    If you want to do this with a calculated item (don't know if the formatting will work for you), but you can make the calculation more general by using $1 for column 1 and $2 for column 2 in your calculation. So the relative columns ($x) will change with the columns in your report.
    Regards

  • Why should we associate attribute dimension to base sparse dimension only

    hi experts,
    I have query, please suggest that.
    Why should we associate attribute dimension to base sparse dimension only ? any reason is there.
    thanks in advance

    Have a read of - why attribute dimension attached to sparse dimension and Attribute Dimension and association with multi level base members
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Need help in SQL query to get only distinct records

    Hi all.
    I am new to oracle SQL and i want to write a query to get only distinct values from 2 tables.
    for example i hade 2 tables table1(employee_id,employee_no,grade) and another table2 with same structure.
    for example data in table1 is
    Employeeid employeeno Grade
    1 101 A
    1 101 B
    1 101 E
    1 101 D
    and data in table 2 is
    Employeeid employeeno Grade
    1 101 A
    1 101 B
    1 101 E
    i want to display only the fourth row like the data that doesnt exist in table2 i,e (1 101 D)
    I had too much records in both tables and i jst want to see the records that is in table 1 not in table 2 only.
    employeeid and employeeno are the same in both tables
    I hope u understand my query. I user left outer join and right outer join bt it displays all the results that and matching and unmatching. I want jst unmatched records.
    Any help is highly Appreciated.
    Thanx in Advance.
    I am using oracle 10G on windows

    Try MINUS:
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/queries004.htm#i2054381
    SQL> -- generating sample data:
    SQL> with t1 as (
      2  select 1 employeeid, 101 employeeno, 'A' grade from dual union
      3  select 1, 101, 'B' from dual union
      4  select 1, 101, 'E' from dual union
      5  select 1, 101, 'D' from dual
      6  )
      7  ,  t2 as (
      8  select 1 employeeid, 101 employeeno, 'A' grade from dual union
      9  select 1, 101, 'B' from dual union
    10  select 1, 101, 'E' from dual
    11  )
    12  --
    13  -- actual query:
    14  --
    15  select employeeid
    16  ,      employeeno
    17  ,      grade
    18  from   t1
    19  minus
    20  select employeeid
    21  ,      employeeno
    22  ,      grade
    23  from   t2;
    EMPLOYEEID EMPLOYEENO G
             1        101 D
    1 row selected.

  • Refresh table-form query on table only

    Hello,
    I have a group being generated as a table-form layout. What I would like is for the table page to be refreshed always on entry. I can't set the group requery condition to always, or "when entering the page" as then the view object is executed going navigating from the table page to the form page. This seems a very simple requirement to me but Im struggling to come up with an elegant solution.
    Basically what i need is the refreshCondition on the invokeAction binding executable to be "Always and layout=table".
    Any help would be greatly appreciated !
    Cheers,
    Brent

    How do you do this, if your current page is a .jsff and not a .jspx? When I look at the refreshCondition, a .jsff does not have access to the facesContext.
    Thanks,
    Michelle
    Since this question was already answered, I created a new thread:
    Refresh table-form query on table only for .jsff pages
    Edited by: MSchaffer on Dec 1, 2010 11:54 AM

  • Query is taking only 1 dept .,...how to pass dept98 in query

    select file_subject as "File Subject",
    (select RECEIPT_DATE from FILETRANS JOIN FILEMASTER
    on filemaster.file_serial_no = FILETRANS.file_serial and
    filemaster.file_year=FILETRANS.file_year and filetrans.RECEIPT_DATE
    between trunc(sysdate-6)+(15/24) and least( trunc(sysdate)+(15/24), sysdate)and rownum=1)
    as "Received Date",(select department_name from departments JOIN FILEMASTER
    ON departments.department_code=filemaster.department_code and rownum=1 ) as "Dept",
    (select section_name from sections JOIN
    FILEMASTER ON sections.section_cd=filemaster.section_code
    and rownum=1 and sections.dept_cd=filemaster.department_code) as "Section"
    from filemaster
    select department_name from departments JOIN FILEMASTER
    ON departments.department_code=filemaster.department_code and rownum=1
    this query is taking only 1 dept but it should take other dept name as welll..
    and how to pass "
    dept98 in query..so that i take user dept automatically..and based on that query will give result
    dept98 = Session("dept")
    thanks and regard love4csharp

    rsingh()
    my sub query is returning more than 1 row so how to handle tis with whole query there are more subquery ....
    and also where to add 
    dept98 in above query
    thanks and regard love4csharp

  • How can I make my query to compare only columns of two tables... not the storage information?

    11GR2
    =-----------------------------------
    I am using below querry to compare two table that has same name, under two different users... But after making storage information false like below and  if the storage information is different on column level than it create "Alter modify " statements for the column ... How can I make my query to compare only columns of two tables... not the storage information?
    begin
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'PRETTY', TRUE);
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'SQLTERMINATOR',TRUE);
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'SEGMENT_ATTRIBUTES', FALSE);
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE', FALSE);
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'TABLESPACE',FALSE);
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'CONSTRAINTS',FALSE);
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'REF_CONSTRAINTS',FALSE);
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'CONSTRAINTS_AS_ALTER',FALSE);
    End;
    select REGEXP_REPLACE(dbms_metadata_diff.compare_alter('TABLE','TABLE_NAME_A','TABLE_NAME_A','USER1','USER2'),('USER1...'),'', 1, 0, 'i') from dual

    I am using below querry to compare two table that has same name, under two different users... But after making storage information false like below and  if the storage information is different on column level than it create "Alter modify " statements for the column ... How can I make my query to compare only columns of two tables... not the storage information?
    If you want help you have to SHOW us what you are doing and how you are doing it; you can't just try to tell us in your own words.
    We can't see your computer screen.

  • Obiee query perf

    Hello All,
    Lately, I am running into problems with obiee perf. I am running a that takes above 6 mins in obiee table view.I ran the same obiee generated sql against underlying database( teradata) and i get the result in less than 2 mins. Itz returing 40k records but i am using a table view and i am not doing any fancy stuff in my tables not even grand totals. its just a bunch of columns querying against a bunch of tables. So i didnt know what else to do improve the obiee query performance.
    If it is taking 6 mins at the db end i ve hell lot of options to improve the query but the query returns result set in 2 mins in teradata. So please advice..
    Thanks
    Prash

    As i mentioned i am not using any CASE statements or if null functions. Itz just a simple query joining bunch of columns with bunch of tables. I am not using any kind of union operator either. wat else can we do??. All it does it returns around 42k records
    Please suggest i am pasting my query here
    select T22682."PS_BUSINESS_UNIT_ID" as c1,
    T22682."PS_ACCOUNT_ID" as c2,
    T32450."PS_BUSINESS_UNIT_ID" as c3,
    T32450."JE_HEADER_ID" as c4,
    T32450."PS_JOURNAL_DT" as c5,
    T32450."JE_LINE_NUM_ID" as c6,
    T32450."JE_LINE_DESC" as c7,
    T32450."PS_ACCOUNT_ID" as c8,
    T32450."BASE_CRNCY_AMT" as c9,
    T32450."PS_DEPT_ID" as c10,
    T32450."JRNL_LNE_STAT_I" as c11,
    T32555."JE_HEADER_DESC" as c12,
    T32555."JE_HEADER_POSTED_DT" as c13
    from
    "D_WWVW101"."GL_JE_LINE_PPI" T32450 /* Dim - Journal Line (GL_JE_LINE) */ ,
    "D_WWVW101"."GL_JE_HEADER" T32555 /* Dim - Journal Header (GL_JE_HEADER) */ ,
    "D_WWVW101"."GL_BALANCES" T22682 /* Fact - GL Balances (GL_BALANCES) */
    where ( T32450."PS_BUSINESS_UNIT_ID" = T32555."PS_BUSINESS_UNIT_ID"
    and T22682."PS_BUSINESS_UNIT_ID" = T32450."PS_BUSINESS_UNIT_ID"
    and T22682."PS_ACCOUNT_ID" = T32450."PS_ACCOUNT_ID"
    and T22682."PS_FISCAL_YEAR_ID" = T32450."PS_FISCAL_YEAR_ID"
    and T22682."PERIOD_ID" = T32450."ACCTG_PERD_NO"
    and T22682."PS_BUSINESS_UNIT_ID" = '00900'
    and T22682."PS_ACCOUNT_ID" = '1641100001'
    and T22682."PS_FISCAL_YEAR_ID" = 2009
    and T22682."PERIOD_ID" = 1
    and T32450."PS_BUSINESS_UNIT_ID" = '00900'
    and T32450."JE_HEADER_ID" = T32555."JE_HEADER_ID"
    and T32450."PS_ACCOUNT_ID" = '1641100001'
    and T32450."PS_FISCAL_YEAR_ID" = 2009
    and T32450."ACCTG_PERD_NO" = 1 )
    ) D1

  • Multi Row Selector using Generic Column Names (parse query at runtime only)

    Hi,
    I created a tabular report which had a multi row select in it - got the deleting working fine.
    Am now creating a second tabular report, but because of the SQL:
    select
    "ID",
    "ID" ID_DISPLAY,
    "RESNUMBER",
    "RESDESCRIPTION",
    decode(RESTYPE,'R','Right Party','W','Wrong Party'),
    decode(DMCFLAG,'Y','Yes','N','No'),
    decode(SALEFLAG,'Y','Yes','N','No')
    from "CALL_RESULTS"
    I have to select the option Use Generic Column Names (parse query at runtime only) otherwise I cannot save the form.
    My problem is I am now unable to add a multi row selector to the tabular form. If I do and run the form I get the following error - failed to parse SQL query: ORA-00904: "COL11": invalid identifier. Also when I go back and edit the form the multi row selector has been removed.
    Can anyone tell me why I can't add a row selector like I previously could?
    Regards
    Simon

    Arie,
    I added aliases and to the decode columns, and I can now add a row selector to the form without any problems.
    Thank you very much for your help.
    Regards
    Simon

  • SQL- Query that return only one record

    Hello,
    is it possible to execute a pure SQL-Query which returns only one row although multiple rows are found.
    It is no problem in PL/SQL, but I have no idea if the same is also possible in SQL.
    thanks in advance
    Michael

    Why not? There are 4 records in this table, but only selected one.
    SQL> with t
      2  as
      3  (
      4     select '#%$@#$@$@##$' Addr from dual
      5     union all
      6     select '18 Jalan Scott' from dual
      7     union all
      8     select '18 Lemana St' from dual
      9     union all
    10     select '32-penstation' from dual
    11     union all
    12     select '99999999999' from dual
    13  )
    14  select addr
    15    from t
    16   where rownum =1
    17  /
    ADDR
    #%$@#$@$@##$
    SQL>Cheers
    Sarma.

  • WMI Query to retrieve only active IPv4 address

    My turn to ask a question. I am running BGInfo for all workstations but at this stage want to only return the Active IPv4 address. I have a custom WMI query set up in BGInfo:
    SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'True'
    This will return both IPv4 and v6 addresses. Without disabling IPv6 on my client workstations, is there a way I can get the query to return only the IPv4 address? Or should I instead create a custom vbscript in BGInfo to get the v4 address.
    Cheers
    Jeremy

    You'd need to nose through the results and reject any IPv6 addresses.
    This sample assumes IPv6 addresses always contain a ":" in the
    string...
    strMsg = ""
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer &
    "\root\cimv2")
    Set IPConfigSet = objWMIService.ExecQuery _
    ("Select IPAddress from Win32_NetworkAdapterConfiguration WHERE
    IPEnabled = 'True'")
    For Each IPConfig in IPConfigSet
    If Not IsNull(IPConfig.IPAddress) Then
    For i = LBound(IPConfig.IPAddress) to
    UBound(IPConfig.IPAddress)
    If Not Instr(IPConfig.IPAddress(i), ":") > 0 Then
    strMsg = strMsg & IPConfig.IPAddress(i) & vbcrlf
    Next
    End If
    Next
    Wscript.Echo strMsg
    HTH
    Nomadtales wrote:
    >
    >
    >My turn to ask a question. I am running BGInfo for all workstations but at this stage want to only return the Active IPv4 address. I have a custom WMI query set up in BGInfo:
    >
    >
    >SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'True'
    >
    >
    >
    >
    >This will return both IPv4 and v6 addresses. Without disabling IPv6 on my client workstations, is there a way I can get the query to return only the IPv4 address? Or should I instead create a custom vbscript in BGInfo to get the v4 address.
    >
    >
    >
    >Cheers
    >
    >
    >
    >Jeremy
    Ha®®y

  • Query to pick only first value/day

    I have a table with Account, Complaint and Date columns. Each Account can log multiple complaints each day.
    Now i need a query to pick only the first complaint in a day from each account. If the same account logged in a complaint next day or any day after i want to show that as well.
    Help me with your ideas. Thanks in advance for your help.

    Maybe
    with
    first_complaints as
    (select account,
            date
       from (select account,
                    date,
                    row_number() over (partition by account order by date) rn
               from a_table
      where rn = 1
    select account,
           complaint,
           date
      from a_table t
    where account in (select account
                         from first_complaints
       and date >= (select date
                      from first_complaints
                     where account = t.account
    Regards
    Etbin
    Message was edited by: Etbin
    rereading: If the same account logged in a complaint next day or any day after i want to show that as well.
    The query above is just select * from a_table
    Now:
    if you want to show just the first complaints in a day for any following date, John answered that already (it's just the first_complaints of mine)
    if you want to show all the complaints in any following date, you have to exclude all the complaints logged the first day except the first one
    select account,
           complaint,
           date
      from (select account,
                   complaint,
                   date,
                   row_number() over (partition by account order by date) rn
              from a_table
           ) t
    where date != (select min(date)
                      from a_table
                     where account = t.account
       or rn = 1

  • OBIEE Query not hitting the other fact table

    Hi All,
    I am trying to create report based on two fact column and one dimension. Dimension is connected with these two facts table. When i create report using one column from dimension and one column from respective facts so i get two scenerio...
    For example let say..
    D1 is dimension and F1 and F2 are two fact tables.
    First i used a column which have aggregation rule from one fact and one column from other fact which also have aggregate column.
    That is report like...
    D1.c1,Agg(F1.c2),Agg(F2.c3)
    When i run the report I get the data from dimension and only from first fact table. When i check the query, Query contain only one fact table and it doesnt hit the other one.
    Now in second scenerio i used one column from dimension, one column from first fact which have aggregation rule and one column from second fact which doesnt have any aggregation rule.
    like...
    D1.c1,Agg(F1.c2),F2.c3
    When i run the report i got the error. It says
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 14026] Unable to navigate requested expression: F1 -C2 . Please fix the metadata consistency warnings. (HY000).
    But there is no warning in RPD.
    I am amazed that it is not taking both the fact columns even the dimension is confirmed dimension and have joined with both the fact tables.
    As i am just started to learn OBIEE, So i am find it bit difficult that how OBIEE select the tables and formed physical query.
    Waiting for your help.
    Regards
    Suhail

    Aadi-Wasi,
    Thumb rule, OBIEE BMM layer must contain a simple star schema.
    Did your BMM layer suffice the above condition? If hope, Not.
    My prediction of your BMM layer structure contains 3 logical tables, i.e. dimension & 2 logical facts...which is not a simple star.
    Thus to make it a simple star collapse 2 logical fact tables into 1 logical fact table. As you mentioned dimension is linked to both facts, collapsing 2 logical fact tables into 1 logical fact table will provide the result for your query1.
    regarding your second error:
    All aggregations must be contained within Fact tables with few exceptions.
    Let us know If I did resolve your issue
    mark posts promptly...
    J
    -bifacts
    http://www.obinotes.com

Maybe you are looking for

  • Page copy seems to mess up item validation referenced fields in new page

    Hello team, this morning i create two pages as a copy of an existing page in Apex 4.0.1. This page contained 4 regions, each one containing 4 items, sort of: reg1 P44_ITEM_A1 P44_ITEM_B1 P44_ITEM_C1 P44_ITEM_D1 reg2 P44_ITEM_A2 reg4 P44_ITEM_D4 There

  • Changing depths of movie clips

    Hi Everyone, I have 8 square movie clips in two rows of 4, all on the same layer. When you click on them they become draggable. The problem is that, depending on where they are located within the layer, sometimes a dragging movie clip appears beneath

  • Calling another program in the print program through FORM ENTRY

    Hi All, Have a requirement that I need to submit the program with variant to a print program. But it is giving dump "Statement "SUBMIT" is not allowed in this form" while executing through VF04. I have tried by using CALL FUNCTION  "func" in update t

  • Lenovo t520 screen going dark

    My lenovo t520 just came back from the repair center to get a new motherboard and I have started noticing a weird issue with the screen. Whenever I go on a website that is primarily dark (like the bckground is black), the screen gets quite dark. And

  • Polling interval for Topology Services in Cisco Prime 4.2

    Hi, Where can I find the polling interval for Topology Services? I noticed that the devices' status is not updated on the map.