Please help on PIOVT query
Hello everyone,
Could anyone please help me to figure out this query......
I have following tables and data
create table code_ref (
ref_id number,
type_id number,
name varchar2(50));
insert into code_ref values(100, 1, 'Part One');
insert into code_ref values(101, 1, 'Part Two');
insert into code_ref values(120, 1, 'Part Three');
insert into code_ref values(125, 1, 'Part Four');
commit;
create table product(
product_id number,
name varchar2(50));
insert into product values(1, 'Product 1');
insert into product values(2, 'Product 2');
insert into product values(3, 'Product 3');
commit;
create table product_parts(
product_id number,
part_id number,
part_desc varchar2(50));
insert into product_parts values(1, 100, 'Product 1, Part 1');
insert into product_parts values(1, 120, 'Product 1, Part 3');
insert into product_parts values(2, 100, 'Product 1, Part 1');
insert into product_parts values(2, 101, 'Product 1, Part 2');
insert into product_parts values(2, 120, 'Product 1, Part 3');
insert into product_parts values(3, 101, 'Product 1, Part 2');
commit;I am able to get this output:
select *
from (select product_id, part_id from product_parts group by product_id, part_id)
pivot (count(part_id) for part_id in(100 "Part One", 101 "Part Two", 120 "Part Three", 125 "Part Four"))
order by product_id;
PRODUCT_ID Part One Part Two Part Three Part Four
1 1 0 1 0
2 1 1 1 0
3 0 1 0 0However, since the new PART can be added later on, and must be included in above output, how to write this SELECT. I tried "for part_id in (select......)", it did not work :-(
Thanks in advance!!!
Hi,
Sorry, the exact number of columns produced by any query has to be hard-coded into the query itself.
user489948 wrote:
... However, since the new PART can be added later on, and must be included in above output, how to write this SELECT. I tried "for part_id in (select......)", it did not work :-(Using a sub-query there only works if you're getting XML output. The result set will have a single XMLTYPE column, which may contain any number of elements.
See the following thread for some other work-arounds:
Re: Report count and sum from many rows into many columns
Similar Messages
-
Please Help for the Query
Hi frds please help me for the below query.What I want to do is to pull out the data from below table :-
date ticker indicator
03/13/2008 3IINFOTECH -8
03/18/2008 3IINFOTECH -4
03/25/2008 3IINFOTECH -5
03/27/2008 3IINFOTECH -3
as such :-
date ticker indicator
03/13/2008 3IINFOTECH -8
03/25/2008 3IINFOTECH -5
03/27/2008 3IINFOTECH -3
Here I want to find the Trend i.e either asc or desc order from the lowest indicator.
In the above sample data -8, -4, -5, -3 out of which I want the asc order data -8, -5, -3 and exclude -4 data.Because the asc order -8, -5, -3 will not follow.
So I want the data
date ticker indicator
03/13/2008 3IINFOTECH -8
03/25/2008 3IINFOTECH -5
03/27/2008 3IINFOTECH -3SQL> CREATE TABLE BORRAME(FECHA DATE, INDICA VARCHAR2(100));
Tabla creada.
SQL> INSERT INTO BORRAME VALUES(TO_DATE('03/13/2008','MM/DD/YYYY'), '3IINFOTECH -8');
1 fila creada.
SQL> INSERT INTO BORRAME VALUES(TO_DATE('03/18/2008','MM/DD/YYYY'), '3IINFOTECH -4');
1 fila creada.
SQL> INSERT INTO BORRAME VALUES(TO_DATE('03/25/2008','MM/DD/YYYY'), '3IINFOTECH -5');
1 fila creada.
SQL> INSERT INTO BORRAME VALUES(TO_DATE('03/27/2008','MM/DD/YYYY'), '3IINFOTECH -3');
1 fila creada.
SQL> COMMIT;
Validación terminada.
SQL>
SQL> SELECT FECHA, INDICA
2 FROM BORRAME
3 WHERE SUBSTR(INDICA,INSTR(INDICA,'-',1)+1,LENGTH(INDICA)) <> '4'
4 ORDER BY SUBSTR(INDICA,INSTR(INDICA,'-',1)+1,LENGTH(INDICA)) DESC;
FECHA
INDICA
13/03/08
3IINFOTECH -8
25/03/08
3IINFOTECH -5
27/03/08
3IINFOTECH -3
-
select * from testme;
NAME VAL
A 1
A 2
A 3
B 1
B 2
B 3
C 1
C 2
I want to get the maximum of name and the maximum of corresponding name's value.
ie., the answer should be
Name VAL
C 2
Please help me with the query.
ThnxSQL> create table testme
2 as
3 select 'A' name, 1 val from dual union all
4 select 'A', 2 from dual union all
5 select 'A', 3 from dual union all
6 select 'B', 1 from dual union all
7 select 'B', 2 from dual union all
8 select 'B', 3 from dual union all
9 select 'C', 1 from dual union all
10 select 'C', 2 from dual
11 /
Tabel is aangemaakt.
SQL> select max(name) name
2 , max(val) keep (dense_rank last order by name) val
3 from testme
4 /
NAME VAL
C 2Regards,
Rob. -
hello all!
please, help me again.
we have a foreign key discrepancy and my task is to create a view which will show the 3 aspects.
Let's we have 3 schemas: A - good (which means that i will compare WITH A, source)
B and C are bad (which mean that I will checking this schemas).
So, i need to obtain:
1) FK that DO NOT exist in B&C and do exist in A
2) FK that DO exist in bad schemas (B&C) but DO NOT exist in good schema (A)
3) FK's that exist in both (A&B, A&C) schemas on the SAME TABLE, have THE SAME CONSTRAINT_NAME but are on the DIFFERENT columns.
the first and second I seem to be done through the
select CONSTRAINT_NAME, TABLE_NAME, STATUS from dba_constraints where owner='PRIV_MD' and CONSTRAINT_TYPE='R' and CONSTRAINT_NAME
2 NOT IN (select CONSTRAINT_NAME from dba_constraints where owner ='MSA_MD'); (to get the second task we just reversing owners in query and subquery)
query. but the third one is really pain in my back. i have a query:
SELECT a.column_name, b.column_name FROM dba_cons_columns a, dba_cons_columns b, dba_constraints c, dba_constraints d
WHERE c.CONSTRAINT_TYPE='R'
AND a.CONSTRAINT_NAME = b.CONSTRAINT_NAME
AND a.CONSTRAINT_NAME = c.CONSTRAINT_NAME
AND b.CONSTRAINT_NAME = d.CONSTRAINT_NAME
AND a.owner = 'PRIV_MD' AND b.owner = 'MSA_MD';
which runs hours and returns million of rows with the two columns with the same names... but if i'm adding
AND a.column_name != a.column_name (i'm not sure it's a correct syntax)
line it returns "no rows selected"
please, help me obtain it, i'm fighting already the second day..
(please, don't be angry, i'm just learning and this is my first task on my work...)This is basically just a UNION ALL (the constraint columns from both schemas)
MINUS what exists in both (the INTERSECTion)
I made it a little more complicated so you could see in which schema the column is used. You could use exactly the same approach for your questions 1 and 2 also.
SELECT * FROM
(SELECT a.column_name,c.constraint_name,'salive' schema_containing
FROM dba_cons_columns a
INNER JOIN dba_constraints c ON a.CONSTRAINT_NAME = c.CONSTRAINT_NAME
WHERE a.owner = 'SALIVE' and c.constraint_type = 'R'
UNION ALL
select b.column_name,d.constraint_name,'satest'
FROM dba_cons_columns b
INNER JOIN dba_constraints d ON b.CONSTRAINT_NAME = d.CONSTRAINT_NAME
WHERE d.CONSTRAINT_TYPE='R' AND b.owner = 'SATEST') u
WHERE NOT EXISTS
(SELECT *
FROM
(SELECT a.column_name,c.constraint_name
FROM dba_cons_columns a
INNER JOIN dba_constraints c ON a.CONSTRAINT_NAME = c.CONSTRAINT_NAME
WHERE a.owner = 'SALIVE' and c.constraint_type = 'R'
INTERSECT
select b.column_name,d.constraint_name
FROM dba_cons_columns b
INNER JOIN dba_constraints d ON b.CONSTRAINT_NAME = d.CONSTRAINT_NAME
WHERE d.CONSTRAINT_TYPE='R' AND b.owner = 'SATEST') i
WHERE u.column_name = i.column_name and u.constraint_name = i.constraint_name) -
Please help with the query (INSERT RETURNING BULK COLLECT INTO)
I am trying to write a query inside the C# code where I would insert values into a table in bulk using bind variables. But I also I would like to receive a bulk collection of generated sequence number IDs for the REQUEST_ID. I am trying to use RETURNING REQUEST_ID BULK COLLECT INTO :REQUEST_IDs clause where :REQUEST_IDs is another bind variable
Here is a full query that use in the C# code
INSERT INTO REQUESTS_TBL(REQUEST_ID, CID, PROVIDER_ID, PROVIDER_NAME, REQUEST_TYPE_ID, REQUEST_METHOD_ID, SERVICE_START_DT, SERVICE_END_DT, SERVICE_LOCATION_CITY, SERVICE_LOCATION_STATE, BENEFICIARY_FIRST_NAME,
BENEFICIARY_LAST_NAME, BENEFICIARY_DOB, HICNUM, CCN, CLAIM_RECEIPT_DT, ADMISSION_DT, BILL_TYPE,
LANGUAGE_ID, CONTRACTOR_ID, PRIORITY_ID, UNIVERSE_DT, REQUEST_DT, BENEFICIARY_M_INITIAL,
ATTENDING_PROVIDER_NUMBER, BILLING_NPI, BENE_ZIP_CODE, DRG, FINAL_ALLOWED_AMT, STUDY_ID, REFERRING_NPI)
VALUES
(SQ_CDCDATA.NEXTVAL, :CIDs, :PROVIDER_IDs, :PROVIDER_NAMEs, :REQUEST_TYPE_IDs,
:REQUEST_METHOD_IDs, :SERVICE_START_DTs, :SERVICE_END_DTs, :SERVICE_LOCATION_CITYs,
:SERVICE_LOCATION_STATEs, :BENEFICIARY_FIRST_NAMEs, :BENEFICIARY_LAST_NAMEs, :BENEFICIARY_DOBs,
:HICNUMs, :CCNs, :CLAIM_RECEIPT_DTs, :ADMISSION_DTs, :BILL_TYPEs, :LANGUAGE_IDs,
:CONTRACTOR_IDs, :PRIORITY_IDs, :UNIVERSE_DTs, :REQUEST_DTs, :BENEFICIARY_M_INITIALs,
:ATTENDING_PROVIDER_NUMBERs, :BILLING_NPIs, :BENE_ZIP_CODEs, :DRGs, :FINAL_ALLOWED_AMTs,
:STUDY_IDs, :REFERRING_NPIs) RETURNING REQUEST_ID BULK COLLECT INTO :REQUEST_IDs
However, when I run this query, it gives me a strange error ORA-00925: missing INTO keyword. I am not sure what that error means since I am not missing any INTOs
Please help me resolve this error or I would appreciate a different solution
Thank youYou cannot use (and do not want to in this case) the BULK COLLECT.
create table for_testing
the_id number not null primary key,
some_data number
declare
l_return_value for_testing.the_id%type;
begin
4
insert into for_testing
the_id,
some_data
values
1,
5
returning the_id into l_return_value;
dbms_output.put_line('the return values is ' || l_return_value);
end;
20 /
the return values is 1
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.02
TUBBY_TUBBZ?Is a simple example. In the future, please use the tags to preserve formatting on your code like i have so it remains readable . -
Please help me in Query result.
Hello Friends..
Need some help .
I have refreshed one workbook for one sales document , and it is showing me all the data.
Could you please tell me how can i check all the key figure value , because in Query properties it is restricted to 0.
Means , if all the Key figure value are 0 , then it will not show that Row in Report .
I want to see the result of 0 value as well with out changing Query properties.
Please help me and advice me , how can i do this.
RegardsHi Jain,
Without changing the query properties it will not be possible to view all values.
If you want to view with changing the properties of query.
Youcan do the following steps
select each attributes right click >restrict->bring back the restricted value->and execute the query.
all the rows will be dispalyed
Hope this helps
Cheers
Sunil -
SQL experts please help for a query
I have following table1.
What query can give the result as given below, SQL experts please help on this.
TABLE1
Event DATETIME
in 2/JAN/2010
out 2/JAN/2010
in 13/JAN/2010
out 13/JAN/2010
in 5/JAN/2010
out 5/JAN/2010
RESULT REQUIRED FROM THE SQL QUERY
COL1_IN COL2_OUT
2/JAN/2010 2/JAN/2010
13/JAN/2010 13/JAN/2010
5/JAN/2010 5/JAN/2010I tried to help, but this puzzles me.
Why is this not returning pre-selected set of rows, why it's doing some merge join cartezian ?
SQL> select * from v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
SQL> select * from table1;
EVENT DATETIME
in 2/JAN/2010
out 2/JAN/2010
in 13/JAN/2010
out 13/JAN/2010
in 5/JAN/2010
out 5/JAN/2010
6 rows selected.
SQL> explain plan for
2 with a as
(select datetime from table1 where event='in'),
b as
(select datetime from table1 where event='out')
select a.datetime COL1_IN ,b.datetime COL2_OUT from a,b ;
Explained.
SQL> set wrap off
SQL> set linesize 200
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 185132177
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 9 | 288 | 8 (0)| 00:00:01 |
| 1 | MERGE JOIN CARTESIAN| | 9 | 288 | 8 (0)| 00:00:01 |
|* 2 | TABLE ACCESS FULL | TABLE1 | 3 | 48 | 3 (0)| 00:00:01 |
| 3 | BUFFER SORT | | 3 | 48 | 5 (0)| 00:00:01 |
|* 4 | TABLE ACCESS FULL | TABLE1 | 3 | 48 | 2 (0)| 00:00:01 |
PLAN_TABLE_OUTPUT
Predicate Information (identified by operation id):
2 - filter("EVENT"='in')
4 - filter("EVENT"='out')
Note
- dynamic sampling used for this statement
21 rows selected.
SQL> with a as
(select datetime from table1 where event='in'),
b as
(select datetime from table1 where event='out')
select a.datetime COL1_IN ,b.datetime COL2_OUT from a,b ;
COL1_IN COL2_OUT
2/JAN/2010 2/JAN/2010
2/JAN/2010 13/JAN/2010
2/JAN/2010 5/JAN/2010
13/JAN/2010 2/JAN/2010
13/JAN/2010 13/JAN/2010
13/JAN/2010 5/JAN/2010
5/JAN/2010 2/JAN/2010
5/JAN/2010 13/JAN/2010
5/JAN/2010 5/JAN/2010
9 rows selected.
SQL> -
Hi All,
Iam getting follwoing error when i run below query,
ORA-01719: outer join operator (+) not allowed in operand of OR or IN
Select /*+RULE*/ lpad(com.comp_year_nr,2,0) || lpad(com.comp_seq_nr,5,0) comp_nr,
com.comp_complainant,
com.comp_date,
mat.mate_desc,
sorg.name,
cri.crit_desc,
mfh.description,
usr.user_full_name,
ccs.character_set,
com.soun_org_code,
com.mate_code,
com.supp_org_code,
com.shor_number,
com.sush_number_1,
com.sush_number_2,
com.sush_number_3,
com.comp_quant_comp,
com.comp_claimed_qty,
decode(com.comp_solv_acc_qa,'N','Open','Y','Closed')
status,
su1.sush_number,
su1.sush_desc,
su2.sush_number,
su2.sush_desc,
su3.sush_number,
su3.sush_desc,
sho.shor_number,
sho.shor_desc,
com.comp_decision,
com.comp_return_qty,
mat.mate_uom,
com.comp_receipt_date
from
supplier_classification sup,
organisation_classification org,
material mat,
complaint com,
mat_flat_hier_desc mfh,
users usr,
company_character_set ccs,
shortcoming sho,
sub_shortcoming su1,
sub_shortcoming su2,
sub_shortcoming su3,
criticality cri ,
organisations sorg
where
com.mate_code = mat.mate_code
and com.mate_org_code = mat.org_code
and com.supp_org_code = sorg.code
and com.supp_org_license = sorg.license
and sorg.code=sup.supp_code(+)
and sorg.license=sup.supp_license(+)
and com.soun_org_code = org.org_code
and com.soun_org_license = org.org_license
and com.crit_number = cri.crit_number
and com.comp_complainant = usr.user_name
and mat.org_code = ccs.company (+)
and com.deletion_date is null
and com.sush_number_1 = su1.sush_number (+)
and com.sush_number_2 = su2.sush_number (+)
and com.sush_number_3 = su3.sush_number (+)
and com.mate_code = mfh.mate_code (+)
and com.mate_org_code = mfh.mate_comp (+)
and sho.shor_number = com.shor_number
and com.comp_complainant = ? and com.soun_org_code = ?
and sup.hier_code = ? and org.hier_code = ?
and (org.code in (?) or org.parent1 in (?) or org.parent2 in (?)
or org.parent3 in (?) or org.parent4 in (?) or org.parent5 in (?)
or org.parent6 in (?) or org.parent7 in (?) )
order by com.comp_year_nr, com.comp_seq_nr;
Please help me how to modify the query Iam using oracle 8i version.
Thanks
Srini
Edited by: srinu2 on Dec 6, 2010 2:38 PMThe message is pretty clear, I would say.
Without having your database (really old), nor the requirement is hard to comment on how to adjust this query...
Post your tables, along with some sample data and your requirement - then we might be able to help you. Use tags to preserve the formatting of your code. -
Please help for my query?
I have a data table following:
Field: ID VALUE MONTH
Data: 111 2 4
111 6 2
222 3 3
222 7 6
333 5 3
333 4 5
333 4 1
I want to write a query using GROUP BY (ID), SUM(value) AND MAX(Month) that return results following:
111 8 4
222 10 6
333 13 5
But I don't know to take it. Please help me to resolve this require
Thanks in advance!
Edited by: user11807715 on Aug 19, 2009 8:25 PMWhy wouldn't it just be
SELECT is, sum(value), max(month)
FROM your_table
GROUP BY idJustin -
I need help with SQL query (if it can be accomplished with query at all).
I'm going to create a table with structure similar to:
Article_Name varchar2(30), Author_Name varchar2(30), Position varchar2(2). Position field is basicly position of an article author in the author list, e.g. if there is one author, his/her position is 0, if 2, then 1st author is 0, second is 1, etc.
Article_Name Author_Name Position
Outer Space Smith 0
Outer Space Blake 1
How can I automate creation of Position, based on number of authors on the fly? Let's say I have original table without Position, but I want to create a new table that will have this information.
RegardsIf you have an existing table whose structure doesn't tell you what position the author is in, what's the algorithm you'd use to determine who was the first author, the second author, etc? If you issue a select query on a table without providing an "order by" clause, Oracle makes no guarantees about the order in which it retrieves rows.
As an aside, why would you store position number in a varchar2 field? If it's a number, it ought to be stored as a number.
Justin -
Plz help me this query:
Create a query that displays the employees last name and indicates the amounts of their annual salaries with *. Each * signifies a thousand $'s.
EG. If the salary of an employee with last name king is 2000 then it should appear as follows:
King **
2 (*) for 2 thousand.
Thanks in advanceHi,
I was able to solve this query on my own. For those who might face a problem in future the solutionto it is:
SELECT rpad(last_name, length(last_name) + (salary/1000), '*') AS employee_and_their_salaries
FROM employees;
Thanks -
Please help with RecordSet Query
Hello all. I am trying to build a contact management system
for different offices. Each person has a login they use to access
their office's respective page. What I am wanting to do is pull up
all the employees' information that work at the same location as
the person who logged in. For example: Person A, B, and C work at
Location 1 and Person X, Y, and Z work at location Z. If person A
logs in, I want the to be able to see the dynamic table with the
information for all of Location 1 (Person A, B, and C). I
understand using the session variable MM_Username to filter the
recordsets based off who logs in. Where I'm confused is in pulling
up the records for everyone that shares the same location as the
person who logs in. In other words, if I say filter Information
based off Session Variable MM_Username it only returns the
information for the person who logged in. I want it to say, in
layman terms, Person A logged in, now look at their location, and
return all Person's information who has a location equal to that of
Person A. I hope I explained my dilemma clearly enough. If I need
to elaborate or explain any more please let me know. Thanks in
advance for any and all help.Thank you for your help. Sorry for my ignorance, but I'm
still confused. I've made some changes to hopefully help. I have 1
SQL table (called "Employees") with TableID, Username, Password,
AccessLevel, and LocationID. I have another table (called
"Names"-for testing purposes) with just TableID, Name, and
LocationID. The query that I built, which doesn't work, is:
SELECT `Names`.`Names`
FROM Employees, `Names`
WHERE Employees.Store_Number = `Names`.Store_Number
I'm wanting it to simply display the names from the Names
table that share the same LocationID as in the Employees Table. I
realize that at this point it should just be a list of all the
employee names from the Names table, but what it's doing is
actually displaying 2 of every name. What do I need to do to set
this up to where the MM_Username Session Variable generated at
login grabs the LocationID from the Employee Table, then uses that
LocationID and displays all the names from the Names Table with
that same LocationID? I'm sorry for my lack of understanding, and I
really appreciated the help.
As a side note, why are there apostrophes around the Name
Table but not the Employees Table in the query window? Thank you
again. -
Hi ,
Below query is taking more time (4mins) for 41 rows returning and there is no full table scan .Can some one help to rewrite the query.
SELECT
esma.candidate AS candidate_additional_sample,
ccr.raw_mark,
ccr.split_session_year AS year,
ccr.split_session_month AS month,
ccr.paper_code,
ccr.assessment_school AS school_code,
get_cand_session_number(ccr.split_session_year,ccr.split_session_month,ccr.candidate) AS candidate_session_number,
ccr.candidate AS candidate_code,
c.firstname AS candidate_firstname,
c.lastname AS candidate_lastname,
ema.moderator_code,
ema.examiner_code,
csr.self_taught
FROM
ibis.candidate_component_reg ccr
INNER JOIN ibis.candidate_examiner_allocation cea
ON ccr.split_session_year= cea.year
AND ccr.split_session_month=cea.month
AND ccr.assessment_school=cea.assessment_school
AND ccr.paper_code= cea.paper_code
AND ccr.candidate = cea.candidate
INNER JOIN ibis.examination_paper ep
ON ccr.split_session_year= ep.year
AND ccr.split_session_month=ep.month
AND ccr.paper_code=ep.paper_code
INNER JOIN ibis.examiner_moderator_allocation ema
ON ema.year =cea.year
AND ema.month =cea.month
AND ema.no_lang_code=ep.no_lang_code
AND ema.examiner_code=cea.examiner_code
AND ema.year =ccr.split_session_year
AND ema.month =ccr.split_session_month
INNER JOIN ibis.candidate_subject_registration csr
ON ccr.split_session_year=csr.year
AND ccr.split_session_month=csr.month
AND ccr.main_school=csr.main_school
AND ccr.candidate=csr.candidate
AND ccr.subject=csr.subject
AND ccr.subject_option=csr.subject_option
AND ccr.lvl=csr.lvl
AND ccr.language=csr.language
INNER JOIN ibis.candidate c
ON ccr.candidate=c.candidate
LEFT OUTER JOIN ibis.exam_sample_mark_additional esma
ON ccr.split_session_year = esma.year
AND ccr.split_session_month = esma.month
AND ep.no_lang_code = esma.nolang_code
AND ccr.candidate = esma.candidate
WHERE
ccr.split_session_year=:v_year
AND ccr.split_session_month=:v_month
AND ccr.subject=:v_subject
AND ccr.subject_option=nvl(:v_subject_option,ccr.subject_option)
AND ccr.language=nvl(:v_language, ccr.language)
AND ccr.component=:v_component
AND ccr.lvl=:v_lvl
AND ccr.raw_mark IS NOT NULL
AND cea.examiner_code = :v_examiner_code
AND ((ccr.sampled='Y'
AND csr.self_taught='N'
AND EXISTS (SELECT 1 FROM ibis.subject_component sc
WHERE sc.assessment_method_id = 11
AND sc.assessment_type='INTERNAL'
AND ccr.split_session_year=sc.year
AND ccr.split_session_month=sc.month
AND ccr.paper_code=sc.paper_code
AND ccr.subject=sc.subject
AND ccr.subject_option=sc.subject_option
AND ccr.lvl=sc.lvl
AND ccr.language=sc.language
AND ccr.component=sc.component)
AND NOT EXISTS (SELECT 1 FROM ibis.cw_portfolio_template cpt
WHERE ccr.split_session_year = cpt.year
AND ccr.split_session_month = cpt.month
AND ccr.subject = cpt.subject
AND ccr.subject_option = cpt.subject_option
AND ccr.component = cpt.component
AND cpt.combined = 'Y')
AND NOT EXISTS (SELECT 1 FROM ibis.school_sample_mark ssm
WHERE ssm.year= ccr.split_session_year
AND ssm.month = ccr.split_session_month
AND ssm.paper_code = ccr.paper_code
AND ssm.candidate =ccr.candidate
AND ssm.examiner_sample = 'Y'))
OR (ccr.sampled='N'
AND csr.self_taught='Y'
AND EXISTS (SELECT 1 FROM ibis.subject_component sc
WHERE sc.assessment_method_id = 11
AND ccr.split_session_year=sc.year
AND ccr.split_session_month=sc.month
AND ccr.paper_code=sc.paper_code
AND ccr.subject=sc.subject
AND ccr.subject_option=sc.subject_option
AND ccr.lvl=sc.lvl
AND ccr.language=sc.language
AND ccr.component=sc.component)
AND NOT EXISTS (SELECT 1 FROM ibis.cw_portfolio_template cpt
WHERE ccr.split_session_year = cpt.year
AND ccr.split_session_month = cpt.month
AND ccr.subject = cpt.subject
AND ccr.subject_option = cpt.subject_option
AND ccr.component = cpt.component
AND cpt.combined = 'Y'))
OR (ccr.sampled='N'
AND EXISTS (SELECT 1 FROM ibis.subject_component sc
WHERE sc.assessment_method_id = 11
AND ccr.split_session_year=sc.year
AND ccr.split_session_month=sc.month
AND ccr.paper_code=sc.paper_code
AND ccr.subject=sc.subject
AND ccr.subject_option=sc.subject_option
AND ccr.lvl=sc.lvl
AND ccr.language=sc.language
AND ccr.component=sc.component)
AND EXISTS (SELECT 1 FROM ibis.cw_portfolio_template cpt
WHERE ccr.split_session_year = cpt.year
AND ccr.split_session_month = cpt.month
AND ccr.subject = cpt.subject
AND ccr.subject_option = cpt.subject_option
AND ccr.component = cpt.component
AND cpt.combined = 'Y')));
explain plan
line 1: SQLPLUS Command Skipped: set linesize 130
line 2: SQLPLUS Command Skipped: set pagesize 0
PLAN_TABLE_OUTPUT
Plan hash value: 2594643366
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 2 | 1036 | 34 (3)| 00:00:01 |
|* 1 | FILTER | | | | | |
|* 2 | HASH JOIN OUTER | | 2 | 1036 | 34 (3)| 00:00:01 |
| 3 | VIEW | | 2 | 974 | 32 (0)| 00:00:01 |
| 4 | CONCATENATION | | | | | |
|* 5 | FILTER | | | | | |
|* 6 | TABLE ACCESS BY INDEX ROWID | CANDIDATE_SUBJECT_REGISTRATION | 1 | 58 | 3 (0)| 00:00:01 |
| 7 | NESTED LOOPS | | 1 | 485 | 16 (0)| 00:00:01 |
| 8 | NESTED LOOPS | | 1 | 427 | 13 (0)| 00:00:01 |
| 9 | NESTED LOOPS | | 1 | 357 | 11 (0)| 00:00:01 |
| 10 | NESTED LOOPS | | 1 | 129 | 8 (0)| 00:00:01 |
| 11 | NESTED LOOPS | | 1 | 80 | 5 (0)| 00:00:01 |
|* 12 | INDEX RANGE SCAN | PK_EXAMINER_MODERATOR_ALLOC | 1 | 39 | 3 (0)| 00:00:01 |
|* 13 | INDEX RANGE SCAN | RFL_EP1 | 1 | 41 | 2 (0)| 00:00:01 |
| 14 | TABLE ACCESS BY INDEX ROWID| CANDIDATE_EXAMINER_ALLOCATION | 1 | 49 | 3 (0)| 00:00:01 |
|* 15 | INDEX RANGE SCAN | CANDIDATE_ALLOCATION_EXAMINER | 1 | | 2 (0)| 00:00:01 |
|* 16 | TABLE ACCESS BY INDEX ROWID | CANDIDATE_COMPONENT_REG | 1 | 228 | 3 (0)| 00:00:01 |
|* 17 | INDEX RANGE SCAN | SPLIT_SESSION_CANDIDATE | 1 | | 2 (0)| 00:00:01 |
| 18 | TABLE ACCESS BY INDEX ROWID | CANDIDATE | 1 | 70 | 2 (0)| 00:00:01 |
|* 19 | INDEX UNIQUE SCAN | CANDIDATE_PK | 1 | | 1 (0)| 00:00:01 |
|* 20 | INDEX RANGE SCAN | Y_M_CAND_SUBJ_LVL_OPTION | 1 | | 2 (0)| 00:00:01 |
|* 21 | FILTER | | | | | |
|* 22 | TABLE ACCESS BY INDEX ROWID | CANDIDATE_SUBJECT_REGISTRATION | 1 | 58 | 3 (0)| 00:00:01 |
| 23 | NESTED LOOPS | | 1 | 485 | 16 (0)| 00:00:01 |
| 24 | NESTED LOOPS | | 1 | 427 | 13 (0)| 00:00:01 |
| 25 | NESTED LOOPS | | 1 | 357 | 11 (0)| 00:00:01 |
| 26 | NESTED LOOPS | | 1 | 129 | 8 (0)| 00:00:01 |
| 27 | NESTED LOOPS | | 1 | 80 | 5 (0)| 00:00:01 |
|* 28 | INDEX RANGE SCAN | PK_EXAMINER_MODERATOR_ALLOC | 1 | 39 | 3 (0)| 00:00:01 |
|* 29 | INDEX RANGE SCAN | RFL_EP1 | 1 | 41 | 2 (0)| 00:00:01 |
| 30 | TABLE ACCESS BY INDEX ROWID| CANDIDATE_EXAMINER_ALLOCATION | 1 | 49 | 3 (0)| 00:00:01 |
|* 31 | INDEX RANGE SCAN | CANDIDATE_ALLOCATION_EXAMINER | 1 | | 2 (0)| 00:00:01 |
|* 32 | TABLE ACCESS BY INDEX ROWID | CANDIDATE_COMPONENT_REG | 1 | 228 | 3 (0)| 00:00:01 |
|* 33 | INDEX RANGE SCAN | SPLIT_SESSION_CANDIDATE | 1 | | 2 (0)| 00:00:01 |
| 34 | TABLE ACCESS BY INDEX ROWID | CANDIDATE | 1 | 70 | 2 (0)| 00:00:01 |
|* 35 | INDEX UNIQUE SCAN | CANDIDATE_PK | 1 | | 1 (0)| 00:00:01 |
|* 36 | INDEX RANGE SCAN | Y_M_CAND_SUBJ_LVL_OPTION | 1 | | 2 (0)| 00:00:01 |
|* 37 | INDEX RANGE SCAN | EXAM_SAMP_MARK_ADD_IOT_PK | 36 | 1116 | 1 (0)| 00:00:01 |
|* 38 | TABLE ACCESS BY INDEX ROWID | CW_PORTFOLIO_TEMPLATE | 1 | 46 | 4 (0)| 00:00:01 |
|* 39 | INDEX RANGE SCAN | YEAR_MON_PORTFOLIO_TEMPLATE | 1 | | 3 (0)| 00:00:01 |
|* 40 | TABLE ACCESS BY INDEX ROWID | SCHOOL_SAMPLE_MARK | 1 | 34 | 4 (0)| 00:00:01 |
|* 41 | INDEX RANGE SCAN | CAND_PAPER_YEAR_MONTH | 1 | | 3 (0)| 00:00:01 |
|* 42 | TABLE ACCESS BY INDEX ROWID | SUBJECT_COMPONENT | 1 | 96 | 4 (0)| 00:00:01 |
|* 43 | INDEX RANGE SCAN | SUBJECT_COMPONENT_PK | 1 | | 3 (0)| 00:00:01 |
|* 44 | TABLE ACCESS BY INDEX ROWID | CW_PORTFOLIO_TEMPLATE | 1 | 46 | 4 (0)| 00:00:01 |
|* 45 | INDEX RANGE SCAN | YEAR_MON_PORTFOLIO_TEMPLATE | 1 | | 3 (0)| 00:00:01 |
|* 46 | TABLE ACCESS BY INDEX ROWID | SUBJECT_COMPONENT | 1 | 87 | 4 (0)| 00:00:01 |
|* 47 | INDEX RANGE SCAN | SUBJECT_COMPONENT_PK | 1 | | 3 (0)| 00:00:01 |
|* 48 | TABLE ACCESS BY INDEX ROWID | SUBJECT_COMPONENT | 1 | 87 | 4 (0)| 00:00:01 |
|* 49 | INDEX RANGE SCAN | SUBJECT_COMPONENT_PK | 1 | | 3 (0)| 00:00:01 |
|* 50 | TABLE ACCESS BY INDEX ROWID | CW_PORTFOLIO_TEMPLATE | 1 | 46 | 4 (0)| 00:00:01 |
|* 51 | INDEX RANGE SCAN | YEAR_MON_PORTFOLIO_TEMPLATE | 1 | | 3 (0)| 00:00:01 |
Predicate Information (identified by operation id):
1 - filter("from$_subquery$_011"."SAMPLED"='Y' AND "from$_subquery$_011"."SELF_TAUGHT"='N' AND NOT EXISTS
(SELECT /*+ */ 0 FROM "IBIS"."CW_PORTFOLIO_TEMPLATE" "CPT" WHERE "CPT"."COMPONENT"=:B1 AND
"CPT"."SUBJECT_OPTION"=:B2 AND "CPT"."SUBJECT"=:B3 AND "CPT"."MONTH"=:B4 AND "CPT"."YEAR"=:B5 AND
"CPT"."COMBINED"='Y') AND NOT EXISTS (SELECT /*+ */ 0 FROM "IBIS"."SCHOOL_SAMPLE_MARK" "SSM" WHERE
"SSM"."MONTH"=:B6 AND "SSM"."YEAR"=:B7 AND "SSM"."PAPER_CODE"=:B8 AND "SSM"."CANDIDATE"=:B9 AND
"SSM"."EXAMINER_SAMPLE"='Y') AND EXISTS (SELECT /*+ */ 0 FROM "IBIS"."SUBJECT_COMPONENT" "SC" WHERE
"SC"."COMPONENT"=:B10 AND "SC"."SUBJECT_OPTION"=:B11 AND "SC"."LANGUAGE"=:B12 AND "SC"."LVL"=:B13 AND
"SC"."SUBJECT"=:B14 AND "SC"."MONTH"=:B15 AND "SC"."YEAR"=:B16 AND "SC"."PAPER_CODE"=:B17 AND
"SC"."ASSESSMENT_METHOD_ID"=11 AND "SC"."ASSESSMENT_TYPE"='INTERNAL') OR "from$_subquery$_011"."SAMPLED"='N'
AND "from$_subquery$_011"."SELF_TAUGHT"='Y' AND NOT EXISTS (SELECT /*+ */ 0 FROM
"IBIS"."CW_PORTFOLIO_TEMPLATE" "CPT" WHERE "CPT"."COMPONENT"=:B18 AND "CPT"."SUBJECT_OPTION"=:B19 AND
"CPT"."SUBJECT"=:B20 AND "CPT"."MONTH"=:B21 AND "CPT"."YEAR"=:B22 AND "CPT"."COMBINED"='Y') AND EXISTS (SELECT
/*+ */ 0 FROM "IBIS"."SUBJECT_COMPONENT" "SC" WHERE "SC"."COMPONENT"=:B23 AND "SC"."SUBJECT_OPTION"=:B24 ANDEdited byCan you please post the following scripts:
1. Tables structure (with all indexes & constraints)
2. Tables data
3. SQL trace file
possibly everything that one can need to regenerate the scenario on his own DB...
OR
spend some time with Oracle Docs on Performance Tuning and then resolve it yourself.
Regards,
Ankit Rathi
http://theoraclelog.blogspot.in -
Please tell me anything wrong in this query please help me follwing query
SELECT o100161.ORG_STRUCTURE_VERSION_ID as E100351,AVG(o100163.PLANNED) as E100360_AVG,AVG(o100163.ACTUAL) as E100180_AVG,( SUM(fx102) )-( SUM(fx103) ) as C_1,( SUM(fx105) )-( SUM(fx106) ) as C_2,( SUM(fx108) )-( SUM(fx109) ) as C_3
FROM ( SELECT o100165.SEGMENT1 AS fx100, SUM(o100165.ACR) AS fx102, SUM(o100165.ADR) AS fx103, SUM(o100165.BDR) AS fx105, SUM(o100165.BCR) AS fx106, SUM(o100165.ECR) AS fx108, SUM(o100165.EDR) AS fx109 FROM ( SELECT
nvl(src.user_je_source_name, '**************') SOURCE,
nvl(cat.user_je_category_name, '**************') CATEGORY,
jeh.name NAME,
jel.code_combination_id CCID,
jeh.DEFAULT_EFFECTIVE_DATE,
jel.period_name PERIOD_NAME,
jel.effective_date EFFECTIVE_DATE,
jel.description DESCRIPTION,
seq.name SEQUENCE_NAME,
jeh.doc_sequence_value DOCUMENT_NUMBER,
jel.accounted_dr,
jel.accounted_cr,
decode(jeh.actual_flag,'B',jel.accounted_dr,'E',0,'A',0)bdr,
decode(jeh.actual_flag,'B',jel.accounted_Cr,'E',0,'A',0)bcr,
decode(jeh.actual_flag,'B',0,'E',jel.accounted_Dr,'A',0)EDr,
decode(jeh.actual_flag,'B',0,'E',jel.accounted_Cr,'A',0)ECr,
decode(jeh.actual_flag,'B',0,'E',0,'A',jel.accounted_Dr)ADr,
decode(jeh.actual_flag,'B',0,'E',0,'A',jel.accounted_Cr)ACr,
jel.JE_LINE_NUM,
cc.segment7 Project_COA_No,
cc.description Segment_description,
pa.segment1,
jeh.actual_flag,
PA.NAME PROJECT_NAME,
cc.segment1||'.'||cc.segment2||'.'||cc.segment3||'.'||cc.segment4||'.'||cc.segment5 seg_desc
FROM gl_je_lines jel,
gl_code_combinations cc,
gl_je_headers jeh,
-- gl_je_batches jeb,
gl_je_categories cat,
gl_je_sources src,
fnd_document_sequences seq,
pa_projects_all pa,
XXEPM_FINANCE_INTEGRATION XX
WHERE
((nvl(accounted_dr,0) != 0 OR nvl(accounted_cr,0) != 0) OR
(nvl(accounted_dr,0) = 0 AND nvl(accounted_cr,0) = 0 AND
stat_amount is not NULL))
AND jeh.je_header_id = jel.je_header_id
AND src.je_source_name = jeh.je_source
AND cat.je_category_name = jeh.je_category
AND seq.doc_sequence_id(+) = jeh.doc_sequence_id
AND jel.code_combination_id = cc.code_combination_id
AND XX.EPM_PA_NO=PA.SEGMENT1
AND XX.FINANCE_PA_COA_SEG=CC.SEGMENT7
ORDER BY jeh.name, jel.je_line_num
) o100165 GROUP BY o100165.SEGMENT1) ,
( select * from PER_ORG_STRUCTURE_ELEMENTS_V
) o100161,
( SELECT PPA.CARRYING_OUT_ORGANIZATION_ID Organization, PPA.PROJECT_ID as "Project ID",ppa.segment1 as "Project No" ,PPA.NAME as "Project Name",
nvl(trunc(((sysdate - PPA.SCHEDULED_START_DATE)/( PPA.scheduled_finish_date - PPA.SCHEDULED_START_DATE) *100 )),0) Planned,
nvl(TRUNC(AVG(PPC.COMPLETED_PERCENTAGE)),0) Actual
FROM PA_PROJECTS_ALL PPA , PA_PERCENT_COMPLETES PPC
WHERE PPA.CARRYING_OUT_ORGANIZATION_ID IN (SELECT A.ORGANIZATION_ID_CHILD
FROM PER_ORG_STRUCTURE_ELEMENTS_V A, PA_IMPLEMENTATIONS_ALL B
WHERE A.ORG_STRUCTURE_VERSION_ID= B.ORG_STRUCTURE_VERSION_ID)
AND PPA.TEMPLATE_FLAG='N'
AND PPC.PROJECT_ID(+) = PPA.PROJECT_ID
GROUP BY PPA.CARRYING_OUT_ORGANIZATION_ID,PPA.PROJECT_ID,ppa.segment1, PPA.NAME ,PPA.SCHEDULED_START_DATE,PPA.scheduled_finish_date
) o100163
WHERE ( (o100163."Project No" = fx100)
and (o100161.ORGANIZATION_ID_CHILD = o100163.ORGANIZATION))
GROUP BY o100161.ORG_STRUCTURE_VERSION_ID;
the second query is as follows
SELECT o100163."Project Name" as E100386,( SUM(o100165.ACR) )-( SUM(o100165.ADR) ) as C_1,( SUM(o100165.BDR) )-( SUM(o100165.BCR) ) as C_2,( SUM(o100165.ECR) )-( SUM(o100165.EDR) ) as C_3
FROM ( SELECT PPA.CARRYING_OUT_ORGANIZATION_ID Organization, PPA.PROJECT_ID as "Project ID",ppa.segment1 as "Project No" ,PPA.NAME as "Project Name",
nvl(trunc(((sysdate - PPA.SCHEDULED_START_DATE)/( PPA.scheduled_finish_date - PPA.SCHEDULED_START_DATE) *100 )),0) Planned,
nvl(TRUNC(AVG(PPC.COMPLETED_PERCENTAGE)),0) Actual
FROM PA_PROJECTS_ALL PPA , PA_PERCENT_COMPLETES PPC
WHERE PPA.CARRYING_OUT_ORGANIZATION_ID IN (SELECT A.ORGANIZATION_ID_CHILD
FROM PER_ORG_STRUCTURE_ELEMENTS_V A, PA_IMPLEMENTATIONS_ALL B
WHERE A.ORG_STRUCTURE_VERSION_ID= B.ORG_STRUCTURE_VERSION_ID)
AND PPA.TEMPLATE_FLAG='N'
AND PPC.PROJECT_ID(+) = PPA.PROJECT_ID
GROUP BY PPA.CARRYING_OUT_ORGANIZATION_ID,PPA.PROJECT_ID,ppa.segment1, PPA.NAME ,PPA.SCHEDULED_START_DATE,PPA.scheduled_finish_date
) o100163,
( SELECT
nvl(src.user_je_source_name, '**************') SOURCE,
nvl(cat.user_je_category_name, '**************') CATEGORY,
jeh.name NAME,
jel.code_combination_id CCID,
jeh.DEFAULT_EFFECTIVE_DATE,
jel.period_name PERIOD_NAME,
jel.effective_date EFFECTIVE_DATE,
jel.description DESCRIPTION,
seq.name SEQUENCE_NAME,
jeh.doc_sequence_value DOCUMENT_NUMBER,
jel.accounted_dr,
jel.accounted_cr,
decode(jeh.actual_flag,'B',jel.accounted_dr,'E',0,'A',0)bdr,
decode(jeh.actual_flag,'B',jel.accounted_Cr,'E',0,'A',0)bcr,
decode(jeh.actual_flag,'B',0,'E',jel.accounted_Dr,'A',0)EDr,
decode(jeh.actual_flag,'B',0,'E',jel.accounted_Cr,'A',0)ECr,
decode(jeh.actual_flag,'B',0,'E',0,'A',jel.accounted_Dr)ADr,
decode(jeh.actual_flag,'B',0,'E',0,'A',jel.accounted_Cr)ACr,
jel.JE_LINE_NUM,
cc.segment7 Project_COA_No,
cc.description Segment_description,
pa.segment1,
jeh.actual_flag,
PA.NAME PROJECT_NAME,
cc.segment1||'.'||cc.segment2||'.'||cc.segment3||'.'||cc.segment4||'.'||cc.segment5 seg_desc
FROM gl_je_lines jel,
gl_code_combinations cc,
gl_je_headers jeh,
-- gl_je_batches jeb,
gl_je_categories cat,
gl_je_sources src,
fnd_document_sequences seq,
pa_projects_all pa,
XXEPM_FINANCE_INTEGRATION XX
WHERE
((nvl(accounted_dr,0) != 0 OR nvl(accounted_cr,0) != 0) OR
(nvl(accounted_dr,0) = 0 AND nvl(accounted_cr,0) = 0 AND
stat_amount is not NULL))
AND jeh.je_header_id = jel.je_header_id
AND src.je_source_name = jeh.je_source
AND cat.je_category_name = jeh.je_category
AND seq.doc_sequence_id(+) = jeh.doc_sequence_id
AND jel.code_combination_id = cc.code_combination_id
AND XX.EPM_PA_NO=PA.SEGMENT1
AND XX.FINANCE_PA_COA_SEG=CC.SEGMENT7
ORDER BY jeh.name, jel.je_line_num
) o100165
WHERE ( (o100163."Project No" = o100165.SEGMENT1))
GROUP BY o100163."Project Name";> please tell me anything wrong in this query
Umm, it's completely unreadable?
Even formatted (with a little help from the wangz.net online SQL formatter, though it needed some manual editing) it's pretty hard to see what it's meant to be doing, due to all the nesting and cryptic naming. This is just the first one:
SELECT o100161.org_structure_version_id AS e100351
, AVG(o100163.planned) AS e100360_avg
, AVG(o100163.actual) AS e100180_avg
, SUM(fx102) - SUM(fx103) AS c_1
, SUM(fx105) - SUM(fx106) AS c_2
, SUM(fx108) - SUM(fx109) AS c_3
FROM ( SELECT o100165.segment1 AS fx100
, SUM(o100165.acr) AS fx102
, SUM(o100165.adr) AS fx103
, SUM(o100165.bdr) AS fx105
, SUM(o100165.bcr) AS fx106
, SUM(o100165.ecr) AS fx108
, SUM(o100165.edr) AS fx109
FROM GG( SELECT NVL(src.user_je_source_name,'**************') source
, NVL(cat.user_je_category_name,'**************') category
, jeh.NAME NAME
, jel.code_combination_id ccid
, jeh.default_effective_date
, jel.period_name period_name
, jel.effective_date effective_date
, jel.description description
, seq.NAME sequence_name
, jeh.doc_sequence_value document_number
, jel.accounted_dr
, jel.accounted_cr
, DECODE(jeh.actual_flag, 'B',jel.accounted_dr, 'E',0, 'A',0) bdr
, DECODE(jeh.actual_flag, 'B',jel.accounted_cr, 'E',0, 'A',0) bcr
, DECODE(jeh.actual_flag, 'B',0, 'E',jel.accounted_dr, 'A',0) edr
, DECODE(jeh.actual_flag, 'B',0, 'E',jel.accounted_cr, 'A',0) ecr
, DECODE(jeh.actual_flag, 'B',0, 'E',0, 'A',jel.accounted_dr) adr
, DECODE(jeh.actual_flag, 'B',0, 'E',0, 'A',jel.accounted_cr) acr
, jel.je_line_num
, cc.segment7 project_coa_no
, cc.description segment_description
, pa.segment1
, jeh.actual_flag
, pa.NAME project_name
, cc.segment1 ||'.' ||cc.segment2 ||'.' ||cc.segment3 ||'.'
||cc.segment4 ||'.' ||cc.segment5 seg_desc
FROM gl_je_lines jel
, gl_code_combinations cc
, gl_je_headers jeh
, gl_je_categories cat
, gl_je_sources src
, fnd_document_sequences seq
, pa_projects_all pa
, xxepm_finance_integration xx
WHERE ( ( NVL(accounted_dr,0) != 0 OR NVL(accounted_cr,0) != 0 )
OR ( NVL(accounted_dr,0) = 0
AND NVL(accounted_cr,0) = 0
AND stat_amount IS NOT NULL ) )
AND jeh.je_header_id = jel.je_header_id
AND src.je_source_name = jeh.je_source
AND cat.je_category_name = jeh.je_category
AND seq.doc_sequence_id (+) = jeh.doc_sequence_id
AND jel.code_combination_id = cc.code_combination_id
AND xx.epm_pa_no = pa.segment1
AND xx.finance_pa_coa_seg = cc.segment7
ORDER BY jeh.NAME, jel.je_line_num) o100165
GROUP BY o100165.segment1)
, ( SELECT *
FROM per_org_structure_elements_v) o100161
, ( SELECT ppa.carrying_out_organization_id organization
, ppa.project_id AS "Project ID"
, ppa.segment1 AS "Project No"
, ppa.NAME AS "Project Name"
, NVL
( TRUNC
( ( (SYSDATE - ppa.scheduled_start_date) /
(ppa.scheduled_finish_date - ppa.scheduled_start_date) * 100)
, 0) planned
, NVL(TRUNC(AVG(ppc.completed_percentage)),0) actual
FROM pa_projects_all ppa
, pa_percent_completes ppc
WHERE ppa.carrying_out_organization_id IN
( SELECT a.organization_id_child
FROM per_org_structure_elements_v a
, pa_implementations_all b
WHERE a.org_structure_version_id = b.org_structure_version_id )
AND ppa.template_flag = 'N'
AND ppc.project_id (+) = ppa.project_id
GROUP BY
ppa.carrying_out_organization_id
, ppa.project_id
, ppa.segment1
, ppa.NAME
, ppa.scheduled_start_date
, ppa.scheduled_finish_date ) o100163
WHERE o100163."Project No" = fx100
AND o100161.organization_id_child = o100163.organization
GROUP BY o100161.org_structure_version_id; -
Please help with the query creating Materialized View
Hi,
We are using the below query to create a Materialized View but it has been running since 3 hours. It is an Oracle 9i database running in HP-UX.The quey is as follows,
(SELECT
/*+ use_nl(A) parallel (A,4)*/
A.ICD_CODE AS ICD_CODE,
A.ICD_DESC AS ICD_DESC,
A.PROC_GROUP as PROC_GROUP,
B.COMPL_ICD_CODE AS COMPL_ICD_CODE,
B.COMPL_GRP_TXT AS COMPL_GRP_TXT,
C.PROC_TYPE AS PROC_TYPE ,
C.I_O_IND AS I_O_IND,
C.DISC_MON AS QUARTER ,
B.PAT_KEY AS PAT_KEY ,
D.COMPL_TYPE_TXT AS COMPL_TYPE_TXT ,
C.PROV_ID AS PROV_ID ,
A.SPECIALTY AS SPECIALTY
FROM
EES_ICD_9_CODE A ,
EES_CLINICAL_COMPL_DATA B,
EES_CLINICAL_DATA C,
EES_CLINCL_COMPL_ICD D
WHERE A.ICD_CODE= B.ICD_CODE
AND B.ICD_CODE= C.ICD_CODE
AND B.COMPL_ICD_CODE=D.ICD_9_CD
AND B.PAT_KEY=C.PAT_KEY
AND B.COMPL_ICD_CODEB.ICD_CODE
AND C.PROC_TYPE 'L'
AND B.COMPL_GRP_TXT'Reoperations'
AND D.COMPL_TYPE_TXT'Intra-operative Misadventure'
AND C.DISC_MON>='2003101'
AND A.SPECIALTY='Colo-Rectal')
union
(SELECT
/*+ use_nl(A) parallel (A,4)*/
A.ICD_CODE AS ICD_CODE,
A.ICD_DESC AS ICD_DESC,
A.PROC_GROUP as PROC_GROUP,
B.COMPL_ICD_CODE AS COMPL_ICD_CODE,
B.COMPL_GRP_TXT AS COMPL_GRP_TXT,
C.PROC_TYPE AS PROC_TYPE ,
C.I_O_IND AS I_O_IND,
C.DISC_MON AS QUARTER ,
B.PAT_KEY AS PAT_KEY ,
D.COMPL_TYPE_TXT AS COMPL_TYPE_TXT ,
C.PROV_ID AS PROV_ID ,
A.SPECIALTY AS SPECIALTY
FROM
EES_ICD_9_CODE A ,
EES_CLINICAL_COMPL_DATA B,
EES_CLINICAL_DATA C,
EES_CLINCL_COMPL_ICD D
WHERE A.ICD_CODE= B.ICD_CODE
AND B.ICD_CODE= C.ICD_CODE
AND B.COMPL_ICD_CODE=D.ICD_9_CD
AND B.PAT_KEY=C.PAT_KEY
AND B.COMPL_ICD_CODEB.ICD_CODE
AND C.PROC_TYPE 'L'
--AND B.COMPL_GRP_TXT'Reoperations'
AND D.COMPL_TYPE_TXT='Intra-operative Misadventure'
AND B.PROC_DAY=C.PROC_DAY
AND C.DISC_MON>='2003101'
AND A.SPECIALTY='Colo-Rectal')
union
(SELECT
/*+ use_nl(A) parallel (A,4)*/
A.ICD_CODE AS ICD_CODE,
A.ICD_DESC AS ICD_DESC,
A.PROC_GROUP as PROC_GROUP,
B.COMPL_ICD_CODE AS COMPL_ICD_CODE,
B.COMPL_GRP_TXT AS COMPL_GRP_TXT,
C.PROC_TYPE AS PROC_TYPE ,
C.I_O_IND AS I_O_IND,
C.DISC_MON AS QUARTER ,
B.PAT_KEY AS PAT_KEY ,
D.COMPL_TYPE_TXT AS COMPL_TYPE_TXT ,
C.PROV_ID AS PROV_ID ,
A.SPECIALTY AS SPECIALTY
FROM
EES_ICD_9_CODE A ,
EES_CLINICAL_COMPL_DATA B,
EES_CLINICAL_DATA C,
EES_CLINCL_COMPL_ICD D
WHERE A.ICD_CODE= B.ICD_CODE
AND B.ICD_CODE= C.ICD_CODE
AND B.COMPL_ICD_CODE=D.ICD_9_CD
AND B.PAT_KEY=C.PAT_KEY
AND B.COMPL_ICD_CODEB.ICD_CODE
AND C.PROC_TYPE 'L'
AND B.COMPL_GRP_TXT='Reoperations'
--AND D.COMPL_TYPE_TXT='Intra-operative Misadventure'
AND B.PROC_DAY>C.PROC_DAY
AND C.DISC_MON>='2003101'
AND A.SPECIALTY='Colo-Rectal')
The explain plan is as follows,
PLAN_TABLE_OUTPUT
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost | TQ |IN-OUT| PQ Distrib |
| 0 | SELECT STATEMENT | | 46935 | 6716K| | 10648 | | | |
| 1 | SORT UNIQUE | | 46935 | 6716K| 14M| 10648 | 45,14 | P->S | QC (RAND) |
| 2 | UNION-ALL | | | | | | 45,13 | P->P | HASH |
|* 3 | HASH JOIN | | 42801 | 6102K| | 4640 | 45,13 | PCWP | |
|* 4 | TABLE ACCESS FULL | EES_CLINCL_COMPL_ICD | 875 | 18375 | | 2 | 45,02
|* 5 | HASH JOIN | | 41552 | 5072K| 14M| 4638 | 45,13 | PCWP | |
|* 6 | TABLE ACCESS FULL | EES_CLINICAL_DATA | 1430K| 40M| | 2855 | 45,03
|* 7 | HASH JOIN | | 628K| 56M| | 494 | 45,10 | P->P | HASH |
|* 8 | TABLE ACCESS FULL | EES_ICD_9_CODE | 37 | 2183 | | 1 | 45,08
|* 9 | TABLE ACCESS BY INDEX ROWID | EES_CLINICAL_COMPL_DATA | 2090K| 71M| | 49
| 10 | BITMAP CONVERSION TO ROWIDS | | | | | | |
|* 11 | BITMAP INDEX FULL SCAN | INX_COMPL_GRP | | | | | |
|* 12 | TABLE ACCESS BY INDEX ROWID | EES_CLINICAL_DATA | 1 | 33 | | 1
| 13 | NESTED LOOPS | | 1327 | 196K| | 947 | 45,13 | PCWP | |
|* 14 | HASH JOIN | | 60205 | 6996K| | 495 | 45,13 | PCWP | |
| 15 | TABLE ACCESS BY INDEX ROWID | EES_CLINCL_COMPL_ICD | 36 | 756 | |
|* 16 | INDEX RANGE SCAN | COMPL_TYPE_TXT_3 | 1 | | | 1 |
|* 17 | HASH JOIN | | 1420K| 132M| | 494 | 45,13 | PCWP | |
|* 18 | TABLE ACCESS FULL | EES_ICD_9_CODE | 37 | 2183 | | 1 | 45,11
|* 19 | TABLE ACCESS BY INDEX ROWID | EES_CLINICAL_COMPL_DATA | 4722K| 175M| | 49
| 20 | BITMAP CONVERSION TO ROWIDS| | | | | | | |
| 21 | BITMAP INDEX FULL SCAN | INX_COMPL_GRP | | | | | |
|* 22 | INDEX RANGE SCAN | EES_CLINICAL_DATA_IND1 | 1 | | | 2 | 45,13
|* 23 | HASH JOIN | | 2807 | 416K| | 4695 | 45,13 | PCWP | |
| 24 | TABLE ACCESS FULL | EES_CLINCL_COMPL_ICD | 911 | 19131 | | 2 | 45,06
|* 25 | HASH JOIN | | 2617 | 334K| 15M| 4693 | 45,13 | PCWP | |
|* 26 | TABLE ACCESS FULL | EES_CLINICAL_DATA | 1430K| 45M| | 2855 | 45,07
|* 27 | HASH JOIN | | 791K| 74M| | 305 | 45,12 | P->P | HASH |
|* 28 | TABLE ACCESS FULL | EES_ICD_9_CODE | 37 | 2183 | | 1 | 45,09
|* 29 | TABLE ACCESS BY INDEX ROWID | EES_CLINICAL_COMPL_DATA | 2632K| 97M| | 30
| 30 | BITMAP CONVERSION TO ROWIDS | | | | | | |
|* 31 | BITMAP INDEX SINGLE VALUE | INX_COMPL_GRP | | | | | |
Predicate Information (identified by operation id):
3 - access("B"."COMPL_ICD_CODE"="D"."ICD_9_CD")
4 - filter("D"."COMPL_TYPE_TXT"'Intra-operative Misadventure')
5 - access("B"."ICD_CODE"="C"."ICD_CODE" AND "B"."PAT_KEY"="C"."PAT_KEY")
6 - filter("C"."PROC_TYPE"'L' AND "C"."DISC_MON">=2003101)
7 - access("A"."ICD_CODE"="B"."ICD_CODE")
8 - filter("A"."SPECIALTY"='Colo-Rectal')
9 - filter("B"."COMPL_ICD_CODE""B"."ICD_CODE")
11 - filter("B"."COMPL_GRP_TXT"'Reoperations')
12 - filter("B"."ICD_CODE"="C"."ICD_CODE" AND "C"."PROC_TYPE"'L' AND "B"."PROC_DAY"="C"."PROC_DA
14 - access("B"."COMPL_ICD_CODE"="D"."ICD_9_CD")
16 - access("D"."COMPL_TYPE_TXT"='Intra-operative Misadventure')
17 - access("A"."ICD_CODE"="B"."ICD_CODE")
18 - filter("A"."SPECIALTY"='Colo-Rectal')
19 - filter("B"."COMPL_ICD_CODE""B"."ICD_CODE")
22 - access("B"."PAT_KEY"="C"."PAT_KEY")
23 - access("B"."COMPL_ICD_CODE"="D"."ICD_9_CD")
25 - access("B"."ICD_CODE"="C"."ICD_CODE" AND "B"."PAT_KEY"="C"."PAT_KEY")
filter("B"."PROC_DAY">"C"."PROC_DAY")
26 - filter("C"."PROC_TYPE"'L' AND "C"."DISC_MON">=2003101)
27 - access("A"."ICD_CODE"="B"."ICD_CODE")
28 - filter("A"."SPECIALTY"='Colo-Rectal')
29 - filter("B"."COMPL_ICD_CODE""B"."ICD_CODE")
31 - access("B"."COMPL_GRP_TXT"='Reoperations')
Note: cpu costing is offPlease help.Try removing the hints.
Is 47,000 a reasonable estimate of how many rows you expect in the results?
See these posts for other information that you should supply.
HOW TO: Post a SQL statement tuning request
HOW TO: Post a SQL statement tuning request - template posting
When your query takes too long
When your query takes too long ...
Maybe you are looking for
-
Identity Synchronization for Windows: AD connector failure
I've recently setup ISW in order to synchronize my primary AD domain and my newly installed directory server instance. The ISW core, connectors and plug-in installs are completed. I ran the final idsync resync to populate directory server from AD and
-
hey experts, I have created one application in JSP and 've used CallableStatement.. but the problem is I am not able to retrieve the correct values from database.. so please let me know where I am going wrong..here's my code:::: Connection con8 = Dri
-
i dont have a credit card and i just putted an itunes gift card ,i have 10$ now but i cant use it without credit card HELP !
-
Hi I have a oracle table ' table_name_1' having following columns Table - table_name_1 Columns - claim_number, serial_number, start_date, fail_date, last_insert_date, last_update_date Keys - The table has primary key on claim_number as well as serial
-
Your plugincheck webpage has the wrong version for flash, it's 442 not 378 on Linux
Your plugincheck web page reports an incorrect version for Adobe Flash Player, you report: 11.2.202.378 for Linux, when the current patch is 11.2.202.442 Firefox 29.0 (required for VMware's crappy cloud interface) Flash 11.2.202.442 Open SuSE 13.1 x6