WITH AS Clause
Hi all
I am using 'with as' clause in RDF to build a dynamic query.
I just want to know whether Report builder 6i supports this, if yes means how i shud use this as my RDF throws signal 11 error if i use it
Comments on this from u r experience will be highly helpful
Thanks in advance
Sundar
Hi All,
I am using WITH Clause to achieve my reporting requirement.
I am creating almost 15 Alias to achieve the calculation but the query is not working.
As i am a beginner , i just want to know is there any limitation of No of alias table in "WITH clause"?
My query is something like below:
With BaseTable as (select
dim.Desc as Desc,
Dim.ID as TabID,
Fact.Amount as Amount,
from Fact
inner join Dim on dim.id=fact.id),
Table2 as
(Select 2 as TabID,
'Desc' as Desc,
(CASE WHEN (SUM(Tab1.Amount*0.1)-500) as Amount
from
BaseTable Tab1
where Tab1.TabID in (1,2,5,6)
Table3 as
(select 3 as TabID,
'Desc' as Desc,
(CASE WHEN (SUM(Tab1.Amount)-0.1*SUM(Tab2.Amount)) > 0 then (SUM(Tab1.Amount)-0.1*SUM(Tab2.Amount)) else 0 end) as Amount
from
BaseTable Tab1,
Table2 Tab2
where Tab1.TabID=Tab2.TabID
and Tab1.RepID in (8,10)
select * from BaseTable
union
select * from Table2
union
select * from Table3
Similar Messages
-
Using bind variable with IN clause
My application runs a limited number of straight up queries (no stored procs) using ODP.NET. For the most part, I'm able to use bind variables to help with query caching, etc... but I'm at a loss as to how to use bind variables with IN clauses. Basically, I'm looking for something like this:
int objectId = 123;
string[] listOfValues = { "a", "b", "c"};
OracleCommand command = new OracleCommand();
command.Connection = conn;
command.BindByName = true;
command.CommandText = @"select blah from mytable where objectId = :objectId and somevalue in (:listOfValues)";
command.Parameters.Add("objectId", objectId);
command.Parameters.Add("listOfValues", listOfValues);
I haven't had much luck yet using an array as a bind variable. Do I need to pass it in as a PL/SQL associative array? Cast the values to a TABLE?
Thanks,
NickNevermind, found this
How to use OracleParameter whith the IN Operator of select statement
which contained this, which is a brilliant solution
http://oradim.blogspot.com/2007/12/dynamically-creating-variable-in-list.html -
Export (expdp) with where clause
Hello Gurus,
I am trying to export with where clause. I am getting below error.
Here is my export command.
expdp "'/ as sysdba'" tables = USER1.TABLE1 directory=DATA_PUMP dumpfile=TABLE1.dmp logfile=TABLE1.log query= “USER1.TABLE1:where auditdate>'01-JAN-10'” Here is error
[keeth]DB1 /oracle/data_15/db1> DATA_PUMP dumpfile=TABLE1.dmp logfile=TABLE1.log query= USER1.TABLE1:where auditdate>'01-JAN-10' <
Export: Release 11.2.0.3.0 - Production on Tue Mar 26 03:03:26 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYS"."SYS_EXPORT_TABLE_03": "/******** AS SYSDBA" tables=USER1.TABLE1 directory=DATA_PUMP dumpfile=TABLE1.dmp logfile=TABLE1.log query= USER1.TABLE1:where auditdate
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 386 MB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/TRIGGER
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
ORA-31693: Table data object "USER1"."TABLE1" failed to load/unload and is being skipped due to error:
ORA-00933: SQL command not properly ended
Master table "SYS"."SYS_EXPORT_TABLE_03" successfully loaded/unloaded
Dump file set for SYS.SYS_EXPORT_TABLE_03 is:
/oracle/data_15/db1/TABLE1.dmp
Job "SYS"."SYS_EXPORT_TABLE_03" completed with 1 error(s) at 03:03:58Version
SQL> select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - ProductionHello,
You should use parameter file.Another question i can see you are using 11g.Why don't you use data pump?.
Data Pump is faster and have more features and enhancement than regular imp and exp.
You can do the following:
sqlplus / as sysdba
Create directory DPUMP_DIR3 for 'Type here your os path that you want to export to';then touch a file:
touch par.txt
In this file type the following the following :
tables=schema.table_name
dumpfile=yourdump.dmp
DIRECTORY=DPUMP_DIR3
logfile=Your_logfile.log
QUERY =abs.texp:"where hiredate>'01-JAN-13' "then do the following
expdp username/password parfile='par.txt'
If you will import from Oracle 11g to version 10g then you have to addthe parameter "version=10" to the parameter file above
BR
Mohamed ELAzab
http://mohamedelazab.blogspot.com/ -
Outer Join with Where Clause in LTS
HI all,
I have a requirement like this in ANSI SQL:
select p1.product_id, p1.product_name, p2.product_group
from product p1 left outer join product_group p2 on p1.product_id = p2.product_id
and p2.product_group = 'NEW'
In Regular SQL:
select p1.product_id, p1.product_name, p2.product_group
from product p1, product_group p2
WHERE p1.product_id *= p2.product_id and p2.product_group = 'NEW'
In OBIEE, I am using a left outer join between these two in Logical table Source, and also, Gave
p2.product_group = 'NEW' in WHERE clause of LTS.
This doesn't seem to solve purpose.
Do you have any idea how to convert WHERE clause in physical query that OBIEE is generating to something like
product p1 left outer join product_group p2 on p1.product_id = p2.product_id AND p2.product_group = 'NEW'
I am using Version 10.1.3.4.1
Creating an Opaque view would be my last option though.Hello
I have read your post and the responses as well. and I understand that you have issues with the Outer Join with where Clause in LTS.
Try this solution which worked for me (using your example ) -
1. In the Physical Layer created a Complex join between PRODUCT and PRODUCT_GROUP tables and use this join relationship :
PRODUCT.PROD_ID = PRODUCT_GROUP.PROD_ID AND PRODUCT_GROUP.GROUP_NAME = 'MECHANICAL'
2. In the General Tab of PRODUCT table LTS add PRODUCT_GROUP table and select Join Type as Left Outer Join.
3. Check Consistency and make sure there are no errors .
when you run a request you should see the following query generated -
select distinct T26908.PROD_ID as c1,
T26908.PROD_NAME as c2,
T26912.GROUP_NAME as c3
from
PRODUCT T26908 left outer join PRODUCT_GROUP T26912 On T26908.PROD_ID = T26912.PROD_ID and T26912.GROUP_NAME = 'MECHANICAL'
order by c1, c2, c3
Hope this works for you. If it does please mark this response as 'Correct' .
Good Luck. -
Select query with UNION clause in database adapter
Friends,
I have got a SQL query with two UNION clause withing it. like
select a,b,c
from a
union
select a,b,c
from b
The schema generated is like below in sequence
<element>a</element>
<element>b</element>
<element>c</element>
<element>a</element>
<element>b</element>
<element>c</element>
So, the columns from different select queries joined with UNION clause are all appeared in schema instead of the distinct columns.
Is there any way around to solve this issue ? or will need to with DB function/procedure.I think I know what you are saying but your example doesn't make sense, your SQL should produce something like
I had to change a, b, c with elementA, elementB, elementC as a and b are reserved html tags.
<elementA>DateA</elementA>
<elementB>DataB</elementB>
<elementC>DataC</elementC>
...What is the result of the query when you run it in SQLPlus? Is it what you expect?
cheers
James -
Create Materialized View with Compress clause
Hi,
Oracle 9i R2 has an option to use compress clause while creating table, materialized view or etc. Just wanted some help on tips to be followed during creating a materilized view with compress clause and refresh the same.do i need to follow any special procedures ??? Any help greatly appreciated.
Thanks,
Chak.I read in the book that while inserting user /+append+/ otherwise table with compress will fail. I am doing materialized view refresh with fast mode and data will be inserted as per logs residing at master site.. while inserting into materialized view, do i have to setup specially since fast refresh is going to insert data into existing materialized view.
Thanks, -
Merge with where clause after matched and unmatched
Hai,
Can anybody give me one example of merge statement with
where clause after matched condition and after the unmatched condition.
MERGE INTO V1 VV1
USING (SELECT A.CNO XXCNO, A.SUNITS XXSU, A.DDATE XXDD, XX.SUM_UNITS SUMMED
FROM V1 A,
(SELECT
SUM(SUNITS) SUM_UNITS FROM V1 B
GROUP BY CNO) c
WHERE
A.DDATE=0 AND A.SUNITS <>0 AND
A.ROWID=(SELECT MAX(ROWID) FROM V1 )) XX
ON (1=1)
WHEN MATCHED THEN UPDATE SET
VV1.SUNITS=XX.SUMMED
WHERE XX.XXDD=0
WHEN NOT MATCHED THEN INSERT
(VV1.CNO, VV1.SUNITS, VV1.SUNITS)
VALUES (XX.XXCNO, XX.XXSU, XX.XXDD)
WHERE XX.XXDD<>0
i am getting the error
WHERE XX.XXDD=0
ERROR at line 13:
ORA-00905: missing keyword
Thanks,
PalOne of the example is there:
http://download-west.oracle.com/docs/cd/B14117_01/server.101/b10759/statements_9016.htm#sthref7014
What Oracle version do you use ?
Besides the condition (1=1) is non-deterministic,
I would expect there an exception like "unable to get a stable set of rows".
Rgds. -
Hi,
Can we write Insert with 'Where' clause? I'm looking for something similar to the below one (which is giving me an error)
insert into PS_AUDIT_OUT (AUDIT_ID, EMPLID, RECNAME, FIELDNAME, MATCHVAL, ERRORMSG)
Values ('1','10000139','NAMES','FIRST_NAME',';','')
Where AUDIT_ID IN
( select AUDIT_ID from PS_AUDIT_FLD where AUDIT_ID ='1' and RECNAME ='NAMES'
AND FIELDNAME = 'FIRST_NAME' AND MATCHVAL = ';' );
Thanks
DuraiIt is not clear what are you trying to do, but it looks like:
insert
into PS_AUDIT_OUT(
AUDIT_ID,
EMPLID,
RECNAME,
FIELDNAME,
MATCHVAL,
ERRORMSG
select '1',
'10000139',
'NAMES',
'FIRST_NAME',
from PS_AUDIT_FLD
where AUDIT_ID = '1'
and RECNAME ='NAMES'
and FIELDNAME = 'FIRST_NAME'
and MATCHVAL = ';'
SY. -
Hierarchical query with where clause
Hi,
How can I query hierarchically a query with WHERE clause? I have a table with three fields session_id,id and root_id.
When I try with the following query,
select id, level from relation
where session_id = 79977
connect by prior id = root_id start with id = 5042;
It gets duplicate values.
I want the query to show in the hierarchical manner with a filter condition using WHERE clause. Please help me how can I achieve this. If you know any link that describes more about this, please send it.
Thanks in Advance.
Regards,
-ParmyHi Sridhar Murthy an others,
Thanks a lot for your/the answer. It's working for me. It saved a lot of other work around without the proper knowledge of hierarchical query. Please send me any link that describes these issues in detail and also I hope as I have mentioned in the other message, same cannot be achieved on views or ( on two different tables ???)
Any way thanks for your reply,
It's working for me.
With happiness,
-Parmy -
Physical queries generated with DISTINCT clause
Hi All,
We have a model with three dimension tables and a fact table. All the join conditions between dimension and fact tables are defined and dimension with level keys.
Apart from this, one of the dimension is used for applying the row level filter.
Oracle BI is generating physical queries with DISTINCT clause, which is impacting the performance of the query exeuction. Any tips in modification to business model to avoid the generation of DISTINCT clause would be appreciated.
Thanks,
Phanihi,
Open RPD-->Double click on Logical table source in BMM layer and go to content tab .you will have Select Distinct Values by default it was uncheck if that is checked uncheck that one....(this one is only to restrict from BMM layer)
thanks,
saichand.v -
SQL statement with union clause
Hi,
I have a scenario where i need to generate a sql statement with UNION .
Eg:
SELECT B.YY_ID,
FROM XXXX.YY B
WHERE (B.YY_TY= 'as')
UNION
SELECT B.YY_ID
FROM XXXX.YY_ALT_NAME A, XXXX.YY B
WHERE (A.YY_TY= 'zx'
AND (B.YY_ID=A.YY_ID)"
I tried ns1:table1() union ns3:table2() in XQuery.
But it is pushdown as 2 seperate sqls.
Is it possible to create XQuery that pushdown as SINGLE SQL statement with union clause ?
ThanksNo. See 3.1.1.5 in the document I referenced in your previous post.
-
Require a query with all clauses
Hi All,
I have been asked for a query to write by using all sql clauses like group by, where, having, order by in a single query. I just wrote the below query but I did not get out put. Please do correct where I am missing.
select deptno, max(sal) from emp group by deptno having deptno > ( select distinct deptno from emp where deptno >= 20)
Thanks for your time and info.1007912 wrote:
select deptno, max(sal) from emp group by deptno having deptno > ( select distinct deptno from emp where deptno >= 20)
Logically it was wrong; as your sub-query will return more then one record for comparison. By the way if you are querying the same data from same table then why you need a sub query in having clause! No need of it. Even if you are not using any aggregate predicates then use it with where clause.
This is how your query and output should come out!
SQL> select
2 deptno, max(sal)
3 from emp
4 where deptno >= 20
5 group by deptno
6 order by 1
7 /
DEPTNO MAX(SAL)
20 3000
30 2850
SQL> -
Outer join with BETWEEN clause
Hi All,
I have 2 tables (A and B) which i need to join. I need all records from table A and matching records from the table B. below is the structure.
TABLE A (total rows = 10)
ROW_WID
GL_DATE
LOCATION_CODE
TABLE B (total = 7)
ROW_WID
START_DATE
END_DATE
LOCATION_CODE
Initially, we were asked to join based on location_code. In the table B, some of the LOCATION_CODE are missing, which is present in table A.
We wrote below query
SELECT A.*, B.START_DATE, B.END_DATE
FROM A, B
WHERE A.LOCATION_CODE = B.LOCATION_CODE (+)
This gives 10 records, where 3 records have START_DATE and END_DATE NULL. because of outer join
It gave all records from the A table. It worked fine. Now i need to add one more condition where A.GL_DATE between B.START_DATE and B.END_DATE
If i write this
SELECT A.*, B.START_DATE, B.END_DATE
FROM A, B
WHERE A.LOCATION_CODE = B.LOCATION_CODE (+)
AND A.GL_DATE BETWEEN B.START_DATE and B.END_DATE
This gives me only 7 records. IS IT POSSIBLE TO ADD OUTER JOIN with BETWEEN clause.Hi All,
I'm in a similar situation,
I have a complex query, everything is working fine, except this part (I will simplify everything, removing other stuffs because I need help only on the following condition)
SELECT *
from transaction t, card c
where c.card_id = t.card_id (+)
and t.trn_date between to_date ('01/01/2012','dd/mm/yy') and ('01/01/2013,'dd/mm/yy')
How could i OUTER JOIN the between condition?
I tried with
and t.trn_date between to_date ('01/01/2012','dd/mm/yy') (+) and ('01/01/2013','dd/mm/yy') (+)
but returns a "missing expression" error.
Surely I'm missing some stupid thing about it, could you help me on this? (probably because I'm talking about parameters and I cannot put the outer join on a value)
How can I rewrite the condition in order to satisfy what I'm trying to accomplish?
Thanks in Advance,
Alex
Edited by: 981667 on 14-gen-2013 4.23
Edited by: 981667 on 14-gen-2013 4.24 -
No tree displayed with WHERE clause (data issue?)
I tried this on the apex.oracle.com workspace after it didnt run in our setup, and I ran into the same issue.
I cant get the tree to display when I add a WHERE clause to the query.
I know this isnt a problem with the WHERE clause, and has something to do with the data.
If I just delete the data I dont want from the table (data_type <> 'S'), it WORKS, even with the WHERE clause.
I have checked running the SQL, and the root element is returned.
When I look at the HTML source of the page, I can see the js object created, though it seems to be constructed incorrectly.
select case when connect_by_isleaf = 1 then 0
when level = 1 then 1
else -1
end as status,
level,
"DATA_TEXT" as title,
null as icon,
"ID" as value,
null as tooltip,
null as link
from "#OWNER#"."T_ROOT_CAUSE_TEMPLATE"
where (data_type='S' or id=346)
start with id=346
connect by prior "ID" = "PARENT"
order siblings by "DATA_SEQUENCE"Just in case if you didn't know it, you can use WITH factoring clause when creating a tree. It makes it possible to create as many "tables" as you need, while the final hierarchical query (that is responsible for the way the tree looks like) is a simple one. This (+WITH+) approach is convenient as you can avoid repeating inline views and/or subqueries.
For example, your query might have looked like this:
with s_type as
(select * from t_template
where data_type = 'S'
or id = 346
select
case when connect_by_isleaf = 1 then 0
when level = 1 then 1
else -1
end as status,
level,
data_text as title,
null as icon,
id as value,
null as tooltip,
null as link
from
s_type
start with id=346
connect by prior id = parent
order siblings by data_sequence -
Outer join on query with OR clause
hi all, i am having problem outerjoining a query with or clause
here is my data
WITH table1 AS
SELECT 'test' txt1, 'pak' txt2, 'ced' txt3, 'su' txt4 FROM dual UNION ALL
SELECT null txt1, 'pak' txt2, 'ced2' txt3, 'su2' txt4 FROM dual UNION ALL
SELECT null txt1, NULL txt2, 'ced3' txt3, 'su3' txt4 FROM dual UNION ALL
SELECT null txt1, NULL txt2, null txt3, 'su3' txt4 FROM dual UNION ALL
SELECT 'text5' txt1, NULL txt2, null txt3, 'su3' txt4 FROM dual UNION ALL
SELECT null txt1, NULL txt2, null txt3, null txt4 FROM dual
,table2 AS
SELECT 111 pid, 'test' txt1, 'pak4' txt2, 'ced' txt3, 'su' txt4 FROM dual UNION ALL
SELECT 222 pid, 'test1' txt1, 'pak' txt2, 'ced2' txt3, 'su2' txt4 FROM dual UNION ALL
SELECT 333 pid, 'test2' txt1, 'pak3' txt2, 'ced3' txt3, 'su4' txt4 FROM dual UNION ALL
SELECT 444 pid, 'test2' txt1, 'pak3' txt2, 'ced4' txt3, 'su3' txt4 FROM dual
SELECT b.pid, a.*
from table1 a, table2 b
WHERE (a.txt1 = b.txt1 OR
a.txt1 IS NULL AND a.txt2=b.txt2 OR
Nvl(a.txt2, a.txt1) IS NULL AND a.txt3 = b.txt3 OR
Nvl(a.txt2, a.txt1) IS NULL AND a.txt3 IS NULL AND a.txt4 = b.txt4
) as you can see i am joining table1 and table 2. i am joining with txt1, if txt1 is null then join by txt2, if null then join by txt3 and so on.
the code above product this output
PID TXT1 TXT2 TXT3 TXT4
=== ==== === ==== ====
111 test pak ced su
222 pak ced2 su2
333 ced3 su3
444 su3this output is partially correct. only 4 rows were display and two was left out
SELECT 'text5' txt1, NULL txt2, null txt3, 'su3' txt4 FROM dual UNION ALL
SELECT null txt1, NULL txt2, null txt3, null txt4 FROM dual i tried using outer join but oracle complain that i cannot use outerjoin with OR clause.
can someone help modify my query to display the output below ?
PID TXT1 TXT2 TXT3 TXT4
=== ==== === ==== ====
111 test pak ced su
222 pak ced2 su2
333 ced3 su3
444 su3
NULL NULL NULL NULL NULL
test5Not sure you can do it with the Oracle style outer joins, but wioth ANSI style joins it is simple, actually exactly as you had it.
SQL> set null null;
SQL> WITH table1 AS (
2 SELECT 'test' txt1, 'pak' txt2, 'ced' txt3, 'su' txt4 FROM dual UNION ALL
3 SELECT null txt1, 'pak' txt2, 'ced2' txt3, 'su2' txt4 FROM dual UNION ALL
4 SELECT null txt1, NULL txt2, 'ced3' txt3, 'su3' txt4 FROM dual UNION ALL
5 SELECT null txt1, NULL txt2, null txt3, 'su3' txt4 FROM dual UNION ALL
6 SELECT 'text5' txt1, NULL txt2, null txt3, 'su3' txt4 FROM dual UNION ALL
7 SELECT null txt1, NULL txt2, null txt3, null txt4 FROM dual),
8 table2 AS (
9 SELECT 111 pid, 'test' txt1, 'pak4' txt2, 'ced' txt3, 'su' txt4 FROM dual UNION ALL
10 SELECT 222 pid, 'test1' txt1, 'pak' txt2, 'ced2' txt3, 'su2' txt4 FROM dual UNION ALL
11 SELECT 333 pid, 'test2' txt1, 'pak3' txt2, 'ced3' txt3, 'su4' txt4 FROM dual UNION ALL
12 SELECT 444 pid, 'test2' txt1, 'pak3' txt2, 'ced4' txt3, 'su3' txt4 FROM dual)
13 SELECT b.pid, a.*
14 from table1 a
15 LEFT JOIN table2 b
16 ON (a.txt1 = b.txt1 OR
17 a.txt1 IS NULL AND a.txt2=b.txt2 OR
18 Nvl(a.txt2, a.txt1) IS NULL AND a.txt3 = b.txt3 OR
19 Nvl(a.txt2, a.txt1) IS NULL AND a.txt3 IS NULL AND a.txt4 = b.txt4);
PID TXT1 TXT2 TXT3 TXT4
111 test pak ced su
222 null pak ced2 su2
333 null null ced3 su3
444 null null null su3
null text5 null null su3
null null null null nullJohn -
How to use Special value set with Column clause to display addtional column
hi
can anyone tell me
How to use Special value set with Column clause to display addtional column
how can i use FND POPID and with COLUMN clause ?Dear Yaseen,
To get the value in formula cumulative,after you have created the formula for that particular key figure,go to edit and click on tab "calculations".
In that select overall result as 'count all values not equal to zero' and single result as 'count all values not equal to zero' .
And mark the cumulative check box underneath.
I hope you get the desired result and please do me favour .
Sumit goomber
Maybe you are looking for
-
After running Ccleaner today (and it asked me to "close Firefox or the internet cache will not be cleared", but Firefox was closed or so I think), I can't open Firefox at all; double-clicking the Firefox icon on the desktop does nothing, and no other
-
I had an old mac book from 2005.... i now have a powerbook g4.... i had archived several mailboxes from the old machine / when i try to open them on the new machine it wont let me.... any help would be appreciated - i need to search the archived mail
-
How do you combine iMessage sent to phone number and email?
I talk to someone who sends me imessages to my phone number from their phone, and also from their ipad to my email. Both phone number and email are under the same contact. But the mesages go into 2 different threads. Id like to combine them since bei
-
Is there a way to make a list of songs that I plan on buying in the future?
I constantly see songs that I want to buy on the iTunes store, but then end up forgetting them before I get money to buy them. Is there a way to make a list on the store so that when I come back in the future, I can just pick the songs off of that li
-
Fix for anyone having "push" E-Mail issues...
I finally found a fix for push E-Mail (hitting your phone automatically without you manually having to check.) It works like a charm and my push E-Mail has been working for two days now without one problem. Turn off "push" in mail/contacts/calendar/f