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 advanceGoogle 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. -
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!
StijnPravin,
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 advanceHi,
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 advanceHave 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 windowsTry 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,
BrentHow 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 love4csharprsingh()
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 -
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 dualI 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. -
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
PrashAs 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
SimonArie,
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
MichaelWhy 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
JeremyYou'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
SuhailAadi-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
-
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.