Sub query question
I am working on the below query and I am wondering how i can only get columns where the contamt is over 1000000. I do not have this contamt column in the planhold table and I am not sure how can fix the query.
SELECT letting, CALL, billto, vendor
FROM planhold
WHERE CALL IN (
SELECT l.CALL
FROM tplcp.letprop l
WHERE contamt > 1000000
AND letting BETWEEN '07072701' AND '10072300')
AND letting BETWEEN '07072701' AND '10072300'
WHERE contamt > 1000000------------------but this contamt column does not exist in the planhold table
ORDER BY letting, CALL
Try each of the following and chose the one that performs best...
SELECT letting, CALL, billto, vendor
FROM planhold
WHERE (letting,CALL) IN (
SELECT l.letting, call
FROM tplcp.letprop l
WHERE contamt > 1000000
AND letting BETWEEN '07072701' AND '10072300')
ORDER BY letting, CALL
SELECT letting, CALL, billto, vendor
FROM planhold
WHERE EXISTS (
SELECT null
FROM tplcp.letprop l
WHERE contamt > 1000000
AND l.letting= planhold.letting
AND l.call=planhold.call
AND letting BETWEEN '07072701' AND '10072300'
ORDER BY letting, CALLRegards,
Bob
Similar Messages
-
Can someone please help me with a sub query question?
I need to list a 3rd party contract and then a list of students who belong to that contract.
On the students segment of the listing I need to show students with student id, name, total credit hours,
total amount spent on tuition, total amount spent on books and total amount spent on misc.
This code has a query for the contract information and I get that just fine.
Then it has a query that gives me total credit hours and that works fine
then it has a query that gives me total amount spent on tuition and that works fine
but
when I add the next query to get total amount spent on books I get only the information for the contract, I don't get student stuff anymore.
I would really appreciate any guidance that you could give.
Thanks in advance, Bob Hohulski
DECLARE
l_conn utl_TCP.connection;
v_filehandle utl_file.file_type;
v_output varchar2(1000);
v_contract_id varchar2(9);
v_contract_addr1 varchar2(30);
v_contract_addr2 varchar2(30);
v_contract_city varchar2(20);
v_contract_stat varchar2(03);
v_contract_zip varchar2(10);
v_contract_name varchar2(60);
v_student_id varchar2(09);
v_student_first_name varchar2(15);
v_student_mid_name varchar2(15);
v_student_last_name varchar2(60);
v_last_out varchar2(20);
v_student_detail_code varchar2(04);
v_student_amount number(12,2);
v_student_ref_number varchar2(09);
v_credit_hrs number(7,2);
v_tuition_amount number(12,2);
v_books_amount number(12,2);
v_misc_amount number(12,2);
v_total_for_student number(12,2);
v_current_student varchar2(09);
v_sftregs_pidm varchar2(09);
v_tbraccd_pidm varchar2(09);
CURSOR c_sel_contract IS
SELECT DISTINCT spriden_id, spriden_last_name,
spraddr_street_line1, spraddr_street_line2,
spraddr_city, spraddr_stat_code, spraddr_zip
FROM spriden, spraddr
-- WHERE spriden_id = '&Enter_Id'
where spriden_id = 'T10474666'
AND spriden_pidm = spraddr_pidm
AND SPRIDEN_CHANGE_IND IS NULL;
CURSOR c_sel_student IS
SELECT DISTINCT spriden_id, spriden_first_name, spriden_mi, spriden_last_name,
sftregs_credit_hr,
tbraccd_amount,
sftregs_pidm,
tbraccd_pidm
FROM spriden, tbraccd, tbbcstu, sftregs
WHERE 559220 = tbbcstu_contract_pidm
AND spriden_pidm = tbraccd_pidm
AND spriden_pidm = tbbcstu_stu_pidm
AND spriden_pidm = sftregs_pidm
AND (sftregs_pidm, sftregs_credit_hr) IN
(SELECT DISTINCT sftregs_pidm, SUM(sftregs_credit_hr)
FROM sftregs, tbbcstu, spriden
WHERE sftregs_term_code = '201010'
AND sftregs_pidm = tbbcstu_stu_pidm
AND sftregs_pidm = spriden_pidm
GROUP BY sftregs_pidm)
AND (tbraccd_pidm, tbraccd_amount) IN
(SELECT DISTINCT tbraccd_pidm, SUM(tbraccd_amount)
-- tuition
FROM tbraccd, tbbcstu, spriden
WHERE tbraccd_term_code = '201010'
AND (tbraccd_detail_code = 'TU01' OR
tbraccd_detail_code = 'TU02' OR
tbraccd_detail_code = 'TU03' OR
tbraccd_detail_code = 'TU04')
AND tbraccd_pidm = tbbcstu_stu_pidm
AND tbraccd_pidm = spriden_pidm
GROUP BY tbraccd_pidm)
--this code works up to this point
--when I add the next query I get nothing
AND (tbraccd_pidm, tbraccd_amount) IN
(SELECT tbraccd_pidm, SUM(tbraccd_amount)
books
FROM tbraccd, tbbcstu
WHERE tbraccd_term_code = '201010'
AND (tbraccd_detail_code = 'BKSU' OR
tbraccd_detail_code = 'BKCH')
AND tbraccd_pidm = tbbcstu_stu_pidm
GROUP BY tbraccd_pidm, tbraccd_amount)
--AND (tbraccd_pidm, tbraccd_amount) IN
-- (SELECT tbraccd_pidm, SUM(tbraccd_amount)
-- misc
-- FROM tbraccd, tbbcstu
-- WHERE tbraccd_term_code = '201010'
-- AND tbraccd_pidm = tbbcstu_stu_pidm
-- AND (tbraccd_detail_code = 'AUNA' OR
-- tbraccd_detail_code = 'OTPB')
-- GROUP BY tbraccd_pidm, tbraccd_amount)
--ORDER BY tbraccd_pidm, spriden_first_name, spriden_mi, spriden_last_name,
-- tbbcstu_sponsor_ref_number, sftregs_credit_hr;
ORDER BY tbraccd_pidm;
BEGIN
v_filehandle := utl_file.fopen(location => 'UTLFILE_MISAP9',
filename => 'ban_matrix.dat',
open_mode => 'w',
max_linesize => 32767);
OPEN c_sel_contract;
LOOP
DBMS_OUTPUT.PUT_LINE('looping');
FETCH c_sel_contract INTO v_contract_id, v_contract_name,
v_contract_addr1, v_contract_addr2,
v_contract_city, v_contract_stat,
v_contract_zip;
EXIT WHEN c_sel_contract%NOTFOUND;
v_output :=
nvl(rpad(v_contract_id,9),rpad(' ',9)) ||
' ' ||
nvl(rpad(v_contract_name,60),rpad(' ',60));
utl_file.put_line(v_filehandle,v_output);
v_output :=
nvl(rpad(v_contract_addr1, 30),rpad(' ',30)) ||
' ' ||
nvl(rpad(v_contract_addr2, 30),rpad(' ',30));
utl_file.put_line(v_filehandle,v_output);
v_output :=
nvl(rpad(v_contract_city, 20), rpad(' ',20)) ||
' ' ||
nvl(rpad(v_contract_stat, 3), rpad(' ',3)) ||
' ' ||
nvl(rpad(v_contract_zip, 10), rpad(' ',10));
utl_file.put_line(v_filehandle,v_output);
utl_file.new_line(v_filehandle);
OPEN c_sel_student;
LOOP
FETCH c_sel_student into v_student_id, v_student_first_name, v_student_mid_name,
v_student_last_name,
v_credit_hrs,
v_tuition_amount,
v_sftregs_pidm,
v_tbraccd_pidm;
-- v_books_amount, v_misc_amount;
EXIT WHEN c_sel_student%NOTFOUND;
v_last_out := substr(v_student_last_name, 1, 20);
v_output :=
nvl(rpad(v_student_id, 09),rpad(' ',09)) ||
' ' ||
nvl(rpad(v_student_first_name, 15),rpad(' ',15)) ||
nvl(rpad(v_student_mid_name, 15),rpad(' ',15)) ||
nvl(rpad(v_last_out, 20),rpad(' ',20)) ||
' ' ||
nvl(rpad(v_student_ref_number, 09),rpad(' ',09)) ||
' ' ||
v_credit_hrs ||
' ' ||
v_tuition_amount ||
-- v_books_amount ||
-- ' ' ||
-- v_misc_amount;
utl_file.put_line(v_filehandle,v_output);
END LOOP;
END LOOP;
--EXCEPTION
--WHEN OTHERS THEN
-- DECLARE
-- err_msg VARCHAR2(100);
-- BEGIN
-- err_msg := 'ERR- '||SUBSTR(SQLERRM, 1,100);
-- - utl_file.put_line(v_filehandle,err_msg);
--END;
utl_file.fclose(v_filehandle);
CLOSE c_sel_contract;
CLOSE c_sel_student;
--END AR_MATRIX_PROC;
END;run this original query
SELECT DISTINCT spriden_id,
spriden_first_name,
spriden_mi,
spriden_last_name,
sftregs_credit_hr,
tbraccd_amount,
sftregs_pidm,
tbraccd_pidm
FROM spriden, tbraccd, tbbcstu, sftregs
WHERE 559220 = tbbcstu_contract_pidm
AND spriden_pidm = tbraccd_pidm
AND spriden_pidm = tbbcstu_stu_pidm
AND spriden_pidm = sftregs_pidm
AND (sftregs_pidm, sftregs_credit_hr) IN (SELECT DISTINCT sftregs_pidm, SUM(sftregs_credit_hr)
FROM sftregs, tbbcstu, spriden
WHERE sftregs_term_code = '201010'
AND sftregs_pidm = tbbcstu_stu_pidm
AND sftregs_pidm = spriden_pidm
GROUP BY sftregs_pidm)
AND (tbraccd_pidm, tbraccd_amount) IN (SELECT DISTINCT tbraccd_pidm, SUM(tbraccd_amount)
-- tuition
FROM tbraccd, tbbcstu, spriden
WHERE tbraccd_term_code = '201010'
AND (tbraccd_detail_code = 'TU01' OR
tbraccd_detail_code = 'TU02' OR
tbraccd_detail_code = 'TU03' OR
tbraccd_detail_code = 'TU04')
AND tbraccd_pidm = tbbcstu_stu_pidm
AND tbraccd_pidm = spriden_pidm
GROUP BY tbraccd_pidm)
AND (tbraccd_pidm, tbraccd_amount) IN (SELECT tbraccd_pidm, SUM(tbraccd_amount) books
FROM tbraccd, tbbcstu
WHERE tbraccd_term_code = '201010'
AND (tbraccd_detail_code = 'BKSU' OR
tbraccd_detail_code = 'BKCH')
AND tbraccd_pidm = tbbcstu_stu_pidm
GROUP BY tbraccd_pidm, tbraccd_amount)
ORDER BY tbraccd_pidm;then run this sub-query:
SELECT tbraccd_pidm, SUM(tbraccd_amount) books
FROM tbraccd, tbbcstu
WHERE tbraccd_term_code = '201010'
AND (tbraccd_detail_code = 'BKSU' OR
tbraccd_detail_code = 'BKCH')
AND tbraccd_pidm = tbbcstu_stu_pidm
GROUP BY tbraccd_pidm, tbraccd_amount)see if you have a matching tbraccd_pidm and tbraccd_amount between the two results. -
Sub-query question, looking up value within a query
I have a situation to lookup prior period value within the same query. I tried to use a sub-query but getting a syntax error:
SELECT [VALUE-BAND_ACCT].GLSeq, [VALUE-BAND_ACCT].NUM_SITES, [VALUE-BAND_ACCT].SGMNT1,
[VALUE-BAND_ACCT].SGMNT2, [VALUE-BAND_ACCT].LOB$, [VALUE-BAND_ACCT].PERIOD, [VALUE-BAND_ACCT].RECUR, [VALUE-BAND_ACCT].PROMOTED, [VALUE-BAND_ACCT].COMB_REV_GRS, [VALUE-BAND_ACCT].COMB_REV_NET, [VALUE-BAND_ACCT].ARPSg_ACCT, [VALUE-BAND_ACCT].ARPSn_ACCT,
[VALUE-BAND_ACCT].COMB_VALUE_BAND,
(SELECT [VALUE-BAND_ACCT].COMB_VALUE_BAND
FROM VALUE-BAND_ACCT
WHERE [VALUE-BAND_ACCT].PERIOD = DateSerial(Year([VALUE-BAND_ACCT].PERIOD), Month([VALUE-BAND_ACCT].PERIOD)-1, 1)) AS PRIOR_VALUE_BAND
FROM VALUE-BAND_ACCT;
Appreciating help.Try this:
SELECT [VALUE-BAND_ACCT].GLSeq, [VALUE-BAND_ACCT].NUM_SITES, [VALUE-BAND_ACCT].SGMNT1,
[VALUE-BAND_ACCT].SGMNT2, [VALUE-BAND_ACCT].LOB$, [VALUE-BAND_ACCT].PERIOD,
[VALUE-BAND_ACCT].RECUR, [VALUE-BAND_ACCT].PROMOTED, [VALUE-BAND_ACCT].COMB_REV_GRS,
[VALUE-BAND_ACCT].COMB_REV_NET, [VALUE-BAND_ACCT].ARPSg_ACCT,
[VALUE-BAND_ACCT].ARPSn_ACCT, [VALUE-BAND_ACCT].COMB_VALUE_BAND,
[VALUE-BAND_ACCT_1].COMB_VALUE_BAND AS PRIOR_VALUE_BAND
FROM [VALUE-BAND_ACCT] INNER JOIN [VALUE-BAND_ACCT] AS [VALUE-BAND_ACCT_1]
ON [VALUE-BAND_ACCT].GLSeq = [VALUE-BAND_ACCT_1].GLSeq AND
[VALUE-BAND_ACCT].[LOB$] = [VALUE-BAND_ACCT_1].[LOB$]
WHERE [VALUE-BAND_ACCT_1].PERIOD =
DateSerial(Year([VALUE-BAND_ACCT].PERIOD), Month([VALUE-BAND_ACCT].PERIOD)-1, 1)
or
SELECT [VALUE-BAND_ACCT].GLSeq, [VALUE-BAND_ACCT].NUM_SITES, [VALUE-BAND_ACCT].SGMNT1,
[VALUE-BAND_ACCT].SGMNT2, [VALUE-BAND_ACCT].LOB$, [VALUE-BAND_ACCT].PERIOD,
[VALUE-BAND_ACCT].RECUR, [VALUE-BAND_ACCT].PROMOTED, [VALUE-BAND_ACCT].COMB_REV_GRS,
[VALUE-BAND_ACCT].COMB_REV_NET, [VALUE-BAND_ACCT].ARPSg_ACCT,
[VALUE-BAND_ACCT].ARPSn_ACCT, [VALUE-BAND_ACCT].COMB_VALUE_BAND,
[VALUE-BAND_ACCT_1].COMB_VALUE_BAND AS PRIOR_VALUE_BAND
FROM [VALUE-BAND_ACCT] INNER JOIN [VALUE-BAND_ACCT] AS [VALUE-BAND_ACCT_1]
ON [VALUE-BAND_ACCT].GLSeq = [VALUE-BAND_ACCT_1].GLSeq AND
[VALUE-BAND_ACCT].[LOB$] = [VALUE-BAND_ACCT_1].[LOB$] AND
[VALUE-BAND_ACCT_1].PERIOD =
DateSerial(Year([VALUE-BAND_ACCT].PERIOD), Month([VALUE-BAND_ACCT].PERIOD)-1, 1)
Regards, Hans Vogelaar (http://www.eileenslounge.com) -
Hi, I have two issues, here is my initial code:
select
cc.name_id_no
,cc.discover_date
,cc.cla_case_no
,max(rl.year_of_incident)Non_Loss_Past_5
,rl.timestamp
from cla_case cc, rbn_loss rl
where cc.name_id_no = rl.customer_no
and rl.year_of_incident < trunc(cc.discover_date)
and rl.type_of_loss < 1000
and rl.timestamp < trunc(cc.discover_date)
and (cc.question_class = 20
or cc.question_class = 25)
and (trunc(cc.discover_date)- (rl.year_of_incident)) < 1095
--and (trunc(cc.discover_date) <> (rl.year_of_incident))
group by cc.cla_case_no,name_id_no, cc.discover_date,rl.timestamp
Now a cla_case_no can map to several year_of_incident. I only want the cla_case_no that maps to the max year_of_incident ie There should only be a single cla_case_no corresponding to the max year_of_incident.
To get around this I did the following which is not very efficient and I'm hoping it can be improved:
select distinct z.cla_case_no from (
select
cc.name_id_no
,cc.discover_date
,cc.cla_case_no
,max(rl.year_of_incident)Non_MW_Loss_Past_5
,rl.timestamp
from cla_case cc, rbn_loss rl
where cc.name_id_no = rl.customer_no
and rl.year_of_incident < trunc(cc.discover_date)
and rl.type_of_loss < 1000
and rl.timestamp < trunc(cc.discover_date)
and (cc.question_class = 20
or cc.question_class = 25)
and (trunc(cc.discover_date)- (rl.year_of_incident)) < 1095
--and (trunc(cc.discover_date) <> (rl.year_of_incident))
group by cc.cla_case_no,name_id_no, cc.discover_date,rl.timestamp
) z
Now comes the second issue: The above is actually a subquery that will link to a bigger table via cla_case_no ccx
SELECT
ie ,(select distinct z.cla_case_no from (
select cc.name_id_no, cc.discover_date ,cc.cla_case_no, max(rl.year_of_incident)Non_MW_Loss_Past_5, rl.timestamp
from cla_case cc, rbn_loss rl
where cc.name_id_no = rl.customer_no
and rl.year_of_incident < trunc(cc.discover_date)
and rl.type_of_loss < 1000
and rl.timestamp < trunc(cc.discover_date)
and (cc.question_class = 20
or cc.question_class = 25)
and (trunc(cc.discover_date)- (rl.year_of_incident)) < 1095
--and (trunc(cc.discover_date) <> (rl.year_of_incident))
group by cc.cla_case_no,name_id_no, cc.discover_date,rl.timestamp
) z
where z.cla_case_no = ccx.cla_case_no
) Non_MW_Loss_Past_5
FROM etc
Now only certain cc.cla_case_no from the subquery will corresp to the ccx_cla_case_no from the main table and the other entries will be null.
What I require is that if the subquery returns a result that IS NOT NULL to return 'Y' ELSE 'N' instead of the varies cla_case_no's and (null) entries in the Non_MW_Loss_Past_5 column
Thanks!!!
Banner:
Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
"CORE 11.2.0.2.0 Production"
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - ProductionHi,
It looks like you have another copy of this question:
Case Statement and sub query
That's probably not your fault, but you should mark the other copy as "Answered" right away, and then you'll only have to look for replies in one place.
885178 wrote:
... Now a cla_case_no can map to several year_of_incident. I only want the cla_case_no that maps to the max year_of_incident ie There should only be a single cla_case_no corresponding to the max year_of_incident.If you know there will only be one, then you can use LAST, and you don't need GrOUP BY
To get around this I did the following which is not very efficient and I'm hoping it can be improved:
select distinct z.cla_case_no from (
select
cc.name_id_no
,cc.discover_date
,cc.cla_case_no
,max(rl.year_of_incident)Non_MW_Loss_Past_5
,rl.timestamp
from cla_case cc, rbn_loss rl
where cc.name_id_no = rl.customer_no
and rl.year_of_incident < trunc(cc.discover_date)
and rl.type_of_loss < 1000
and rl.timestamp < trunc(cc.discover_date)
and (cc.question_class = 20
or cc.question_class = 25)
and (trunc(cc.discover_date)- (rl.year_of_incident)) < 1095
--and (trunc(cc.discover_date) <> (rl.year_of_incident))
group by cc.cla_case_no,name_id_no, cc.discover_date,rl.timestamp
) zHere's one way:
SELECT MIN (cla_case_no) KEEP (DENSE_RANK LAST ORDER BY r1.year_of_incident)
AS latest_cla_case_no
FROM cla_case cc
, rbn_loss rl
WHERE cc.name_id_no = rl.customer_no
AND rl.year_of_incident > TRUNC (cc.discover_date) - 1095
AND rl.year_of_incident < TRUNC (cc.discover_date)
AND rl.type_of_loss < 1000
AND rl.timestamp < TRUNC (cc.discover_date)
AND cc.question_class IN (20, 25)
;If you'd post some sample data (CREATE TABLE and INSERT statements) and the results you want from that data, then I could test this.
Now comes the second issue: The above is actually a subquery that will link to a bigger table via cla_case_no ccx
SELECT
ie ,(select distinct z.cla_case_no from (
select cc.name_id_no, cc.discover_date ,cc.cla_case_no, max(rl.year_of_incident)Non_MW_Loss_Past_5, rl.timestamp
from cla_case cc, rbn_loss rl
where cc.name_id_no = rl.customer_no
and rl.year_of_incident < trunc(cc.discover_date)
and rl.type_of_loss < 1000
and rl.timestamp < trunc(cc.discover_date)
and (cc.question_class = 20
or cc.question_class = 25)
and (trunc(cc.discover_date)- (rl.year_of_incident)) < 1095
--and (trunc(cc.discover_date) <> (rl.year_of_incident))
group by cc.cla_case_no,name_id_no, cc.discover_date,rl.timestamp
) z
where z.cla_case_no = ccx.cla_case_no
) Non_MW_Loss_Past_5
FROM etc
Now only certain cc.cla_case_no from the subquery will corresp to the ccx_cla_case_no from the main table and the other entries will be null.
What I require is that if the subquery returns a result that IS NOT NULL to return 'Y' ELSE 'N' instead of the varies cla_case_no's and (null) entries in the Non_MW_Loss_Past_5 column
NVL2 (x, 'Y', 'N')returns 'Y' if x is NULL, and it returns 'N' if x is not NULL. X can be a scalar sub-query:
NVL2 ((SELECT ...), 'Y', 'N')You could also use an EXISTS sub-query:
CASE
WHEN EXISTS (SELECT ...)
THEN 'Y'
ELSE 'N'
END -
I have a doubt with the use of sub-queries. I am using a query like as below & it is giving me expected result:-
SELECT ISS.item_type_id,count(1) + (select sum(invoiced_qty) from ppbs_invoice_detail where
trunc(created_date) between '01-jul-05' and '04-jul-05' and item_type_id=ISS.item_type_id) qty
FROM ppbs_INV_SIM_SERIAL ISS
WHERE INSTR('ROAAIT',STATUS)>0
AND INSTR('NU0NU1NU2NU3SC0',CITY_CODE) =0
and ISS.item_type_id in ('SM17')
group by ISS.item_type_id --
I will re-write above query & i have been using queries like :-
SELECT ISS.item_type_id,count(1) qty
FROM ppbs_INV_SIM_SERIAL ISS
WHERE INSTR('ROAAIT',STATUS)>0
AND INSTR('NU0NU1NU2NU3SC0',CITY_CODE) =0
and ISS.item_type_id in ('SM17') and item_type_id in
(select item_type_id from ppbs_invoice_detail where
trunc(created_date) between '01-jul-05' and '04-jul-05' and item_type_id=ISS.item_type_id)
group by ISS.item_type_id
my doubt here is that the sub-query in the first query is coming before i use the table 'ppbs_inv_sim_serial ISS' whereas in the second query, the table use 'ppbs_inv_sim_serial ISS' is coming before the sub-query use. I have been using queries where table name is defined before the sub-query.
I hope, my question is clear. Please help in solving the doubt.
Regards.I don't see a problem with the table aliasing that you seem to doubt, but your first query won't run. I boiled the thing down to basics: SQL>create table t1 (one number, val_1 number );
Table created.
SQL>create table t2 (one number, val_2 number );
Table created.
SQL>insert into t1 values (1,1);
1 row created.
SQL>insert into t2 values (1,2);
1 row created.
SQL>select a.one, count(1) + ( select sum(val_2) from t2 where t2.one = a.one) qty
2 from t1 a
3 group by one;
select a.one, count(1) + ( select sum(val_2) from t2 where t2.one = a.one) qty
ERROR at line 1:
ORA-00979: not a GROUP BY expression
SQL>
SQL>select a.one, count(1) qty
2 from t1 a
3 where a.one in ( select one from t2 where one = a.one)
4 group by one;
ONE QTY
1 1It's superfluous to "where a.one in ( select.. where = a.one) but that's your code basically. I would just do "=" -
Best way to outer join a table that is doing a sub query
RDBMS : 11.1.0.7.0
Hello,
What is the best way to outer join a table that is doing a sub query? This is a common scenario in EBS for the date tracked tables.
SELECT papf.full_name, fu.description
FROM fnd_user fu
,per_all_people_f papf
WHERE fu.user_id = 1772
AND fu.employee_id = papf.person_id(+)
AND papf.effective_start_date = (SELECT MAX( per1.effective_start_date )
FROM per_all_people_f per1
WHERE per1.person_id = papf.person_id)Output:
No output produced because the outer join cannot be done on the sub queryIn this case I did a query in the FROM clause. Is this my best option?
SELECT papf.full_name, fu.description
FROM fnd_user fu
,(SELECT full_name, person_id
FROM per_all_people_f papf
WHERE papf.effective_start_date = (SELECT MAX( per1.effective_start_date )
FROM per_all_people_f per1
WHERE per1.person_id = papf.person_id)) papf
WHERE fu.user_id = 1772
AND fu.employee_id = papf.person_id(+)Output:
FULL_NAME DESCRIPTION
{null} John DoeThanks,
--JohnnieHi,
BrendanP wrote:
... See the adjacent thread for the other with Row_Number().Do you mean {message:id=10564772} ? Which threads are adjacent is always changing. Post a link.
I think RANK suits the requirements better than ROW_NUMBER:
WITH all_matches AS
SELECT papf.full_name
, fu.description
, RANK () OVER ( PARTITION BY papf.person_id
ORDER BY papf.effective_start_date DESC
) AS r_num
FROM fnd_user fu
LEFT OUTER JOIN per_all_people_f papf ON fu.employee_id = papf.person_id
WHERE fu.user_id = 1772
SELECT full_name
, description
FROM all_matches
WHERE r_num = 1
Johnnie: I hope this answers your question.
If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all tables involved, and also post the results you want from that data.
See the forum FAQ {message:id=9360002} -
SELECT records larger than date specified in sub query
Dear All
Thank you for your attention.
I would like to select records larger than date specified in sub query
query should be something like the following
SELECT my_order_number, my_date, my_task
FROM MYTB
WHERE my_order_number IN order_no AND my_date > date (SELECT order_no, date FROM MySubQueryResult)
(it is incorrect)
Sub query result:
order_no | date
A1 | 2014-12-21 09:06:00
A2 | 2014-12-20 09:07:00
A3 | 2014-12-20 08:53:00
A4 | 2014-12-20 08:57:00
MYTB:
my_order_number | my_task | my_date
A1 | T1 | 2014-12-21 09:06:00
A1 | T2 | 2014-12-22 10:01:00
A2 | T1 | 2014-12-20 09:07:00
A3 | T2 | 2014-12-20 08:53:00
A3 | T4 | 2014-12-21 09:30:00
A3 | T8 | 2014-12-23 20:32:00
A4 | T6 | 2014-12-20 08:57:00
expected result:
my_order_number | my_task | my_date
A1 | T2 | 2014-12-22 10:01:00
A3 | T4 | 2014-12-21 09:30:00
A3 | T8 | 2014-12-23 20:32:00
Any ideas? Thanks.
swivanHi,
try this
SELECT my_order_number, my_date, my_task
FROM MYTB
WHERE my_order_number IN (SELECT order_no FROM MySubQueryResult)
AND my_date > (SELECT date FROM MySubQueryResult)
Alternatively, you can also make use of joins to achieve the same.
Please mark solved if I've answered your question, vote for it as helpful to help other users find a solution quicker
Praveen Dsa | MCITP - Database Administrator 2008 |
My Blog | My Page
Dear Praveen Dsa
Thanks for your reply, but order_no and date are paired and related, cannot separate.
each order have its own date, so it is not working
Best Regards
swivan -
Query Performance and Result Set Query/Sub-Query
Hi,
I have an infoset with as many as <b>15 joins</b> with different ODS and Master Data..<b>The ODS are quite huge with 20 million, 160 million records)...</b>Its taking a lot of time even for a few days and need to get atleast 3 months data in a reasonable amount of time....
Could anyone please tell me whether <b>Sub-Query or Result Set Query have to be written against the same InfoProvider</b> (Cube, Infoset, etc)...or they can be used in queries
on different infoprovider...
Please suggest...Thanks in Advance.
Regards
AnilHi Bhanu,
Needed some help defining the Precalculated Value Set as I wasnt succesful....
Please suggest answers if possible for the questions below
1) Can I use Filter Criteria for restricting the value set for the characteristic when I Define a Query on an ODS. When i tried this it gave me errors as below ..
"System error in program CL_RSR_REQUEST and form EXECUTE_VTABLE:COB_PRO_GET_ALWAYS.... Error when filling value set DELIVERY..
Job cancelled after system exception ERROR_MESSAGE"
2) Can I create a create a Value Set predefined on an Infoset - Not Succesful as Infoset have names such as "InfosetName_F000232" and cannot find the characteristic in Paramter Tab for Value Set in Reprting Agent.
3) How does the precalculated value Set variable help if I am not using any Filtering Criteria and is storing the List of all values for the Variable from the ODS which consists of 20 millio records.
Thanks for your help.
Kind Regards
Anil -
Scoping violation in sub-query
I created a sql in Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 to query Oracle Purchasing tables. The user wants to know an estimate of the number of business days it takes to approve a release once it is created. I created a subquery as follows:
Select Papf.Full_Name As Approver
, Pah.Action_Date As Approved_Date
, Por.Creation_Date
, Trunc(Pah.Action_Date) - Trunc(Por.Creation_Date) As Days
, (Select Count(*)
From (Select Level, (Pah.Action_Date+1)-Level My_Date From Dual
Connect By Level < Trunc(Pah.Action_Date+1) - Trunc(por.creation_Date)
) Where To_Char(My_Date, 'DY') In ('MON', 'TUE', 'WED', 'THU', 'FRI')) As Days2Approve
FROM Apps.Po_Headers_All Poh
, Apps.Po_Releases_All Por
, Apps.Po_Lines_All Pol
, Apps.Po_Action_History Pah
…etc.
When I run the query I get the following error message:
ORA-00904: "POR"."CREATION_DATE": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error at Line: 193 Column: 54
I know the sub-query conceptually sound because if I run the sql below with dummy dates I get 17 which is correct.
Select Count(*)
From (SELECT level, (to_date('24-JAN-2013')+1)-level my_date From Dual
Connect By Level < Trunc(To_Date('24-JAN-2013')+1) - Trunc(To_Date('01-JAN-2013'))
) Where To_Char(My_Date, 'DY') In ('MON', 'TUE', 'WED', 'THU', 'FRI')
How do I pass Pah.Action_Date & por.creation_Date to the sub-query without getting what appears to be scoping violation?
…Hi,
You can avoid the problem by not using a nested sub-query:
SELECT COUNT (*)
FROM dual
CONNECT BY LEVEL < TRUNC (pah.action_date + 1)
- TRUNC (por.creation_date)
WHERE TO_CHAR ( pah.action_date + 1 - LEVEL
, 'DY'
) NOT IN ('SAT', 'SUN')
) AS days2approve
I hope this answers your question.
If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all tables involved, and also post the results you want from that data.
Explain, using specific examples, how you get those results from that data.
See the forum FAQ {message:id=9360002} -
Recursive Sub-query Factoring... bug? or my own personal ignorance?
I was trying to create a list of all dates in the current month using a recursive sub-query factor. (Oracle 11.2)
I know how to do this by other methods; the question is, what's going on with this "WITH" example?
Here's my attempt at generating the list:
with
date_list ( crnt_mnth_date ) as
( select cast ( trunc(sysdate,'MM') as date ) from dual
UNION ALL
select crnt_mnth_date + interval '1' day
from date_list
where to_char(crnt_mnth_date,'MM') = to_char(sysdate,'MM')
select * from date_list ;The recursion should add one day to the previous date and continue while the generated dates are in the same month
as the current-date (sysdate). All I get is the first day of the month. In an attempt to figure this out I added the
sequence "n". To my surprise the recursion is subtracting instead of adding the one day each time.
with
date_list ( n, crnt_mnth_date ) as
( select 1, cast ( trunc(sysdate,'MM') as date ) from dual
UNION ALL
select n+1, crnt_mnth_date + (interval '1' day) as crnt_mnth_date
from date_list
where n < 9
select * from date_list ;And... Changing the "+" to a "-" still subtracts one day each time -- no change.
Obvious BUG? Or am I just confused on how this works?Hi,
I've heard that the new recursive WITH clause feature is buggy, especially when DATEs are involved.
I get the same (unexpected) results that you do.
A very similar query, using only NUMBERs, does wotk as expected:
with
date_list ( n, crnt_mnth_num ) as
( select 1, 20010501 from dual
UNION ALL
select n+1, crnt_mnth_num + 1 as crnt_mnth_num
from date_list
where n < 9
select * from date_list ;Outptu:
` N CRNT_MNTH_NUM
1 20010501
2 20010502
3 20010503
4 20010504
5 20010505
6 20010506
7 20010507
8 20010508
9 20010509 -
Oracle Discoverer Plus - sub query
Hi,
Quick question do you know if the sub query is available in Disco Plus yet?
If so which version and/or what configuration is required.
I know you can still do this in the desktop and then run it in plus but this means users can't do it.
Regards,
Paul.Thanks for this I know it can't be done in the current version. I was hoping that it was something being addressed.
Its a pain to be able to do it in the desktop client and not the web version.
Its a work around when links are not present to the folders.
Cheers,
Paul -
HI,
how ro write nested multiple row ( row should consist range of values )sub query between tables if they dont have any common column.
Based on this weight range I have to group the other columns.
For eg:
My table should contain
weight-range:
1-> 2
2->3
3->4
etcPlease repost your question adding clarity and an example so we can understand what you are asking. Also include your full version number.
SELECT * FROM v$version; -
SQL - Analytical Query Question
Hi All,
I have a requirement for which I am trying to generate the output and I am not able to come up with good logic to solve this issue. I have been trying to solve this for some time now and am not able to figure out how.
I have posted a similar kind of post some time back but this is different to the original one and little more complex than my previous question. I have listed below the script to create a table and insert data.
DROP TABLE ITEMTABLE
CREATE TABLE ITEMTABLE
ITEMTABLEID1 NUMBER(9) NOT NULL,
ITEMTABLEID2 NUMBER(9) NOT NULL,
PARENTTABLEID NUMBER(9),
PARENTINFO VARCHAR2(20),
CONSTRAINT ITEMTABLE_PK PRIMARY KEY (ITEMTABLEID1,ITEMTABLEID2)
Insert into ITEMTABLE values (19217,10245,19216,'PARENTINFO-1');
Insert into ITEMTABLE values (19217,10315,19216,'PARENTINFO-2' );
Insert into ITEMTABLE values (19217,10336,19216,'PARENTINFO-2' );
DROP TABLE FINANCE
CREATE TABLE FINANCE
FINANCEKEY NUMBER(9) NOT NULL,
PARENTID1 NUMBER(9) NOT NULL,
PARENTID2 NUMBER(9) NOT NULL,
CONSTRAINT FINANCE_PK PRIMARY KEY (FINANCEKEY)
Insert into FINANCE values (8332, 19217,10245);
Insert into FINANCE values (8404, 19217, 10315);
Insert into FINANCE values (8425, 19217, 10336);
DROP TABLE ACCT
CREATE TABLE ACCT
ACCTKEY NUMBER(9) NOT NULL,
FINANCEKEY NUMBER(9),
FLAG VARCHAR2(1),
SOURCEKEY NUMBER(9),
CONSTRAINT ACCT_PK PRIMARY KEY (ACCTKEY)
Insert into ACCT values (9874, 8332, 'N',0);
Insert into ACCT values (9875, 8332, 'N',0 );
Insert into ACCT values (9982, 8404, 'Y', 9874);
Insert into ACCT values (9983, 8404, 'Y', 9875);
Insert into ACCT values (10008, 8425, 'N', 9982);
Insert into ACCT values (10009, 8425, 'Y', 9983);
SQL> With tempacct1 as
2 (Select I.ITEMTABLEID1,I.ITEMTABLEID2, AC.SOURCEKEY, NVL(AC.FLAG,'N') AS FLAG, AC.ACCTKEY
3 FROM ITEMTABLE I,FINANCE F,ACCT AC
4 where I.ITEMTABLEID1 = F.PARENTID1
5 and I.ITEMTABLEID2 = F.PARENTID2
6 and F.FINANCEKEY = AC.FINANCEKEY
7 and I.PARENTTABLEID = 19216
8 ORDER BY acctkey ASC
9 )
10 SELECT ITEMTABLEID1,ITEMTABLEID2,acctkey, flag ,SOURCEKEY
11 FROM tempacct1;
ITEMTABLEID1 ITEMTABLEID2 ACCTKEY F SOURCEKEY
19217 10245 9874 N 0
19217 10245 9875 N 0
19217 10315 9982 Y 9874
19217 10315 9983 Y 9875
19217 10336 10008 N 9982
19217 10336 10009 Y 9983
6 rows selected.
Desired Output -
ITEMTABLEID1 ITEMTABLEID2 ACCTKEY F SOURCEKEY
19217 10336 10008 N 9982
19217 10336 10009 Y 9983The solution by Frank for my previous post few weeks back looks like this :-
SQL> SELECT sourcekey
2 , flag
3 , acctkey
4 FROM (
5 SELECT ac.sourcekey
6 , NVL (ac.flag, 'N') AS flag
7 , ac.acctkey
8 , RANK () OVER ( PARTITION BY CASE
9 WHEN sourcekey = 0
10 THEN acctkey
11 ELSE sourcekey
12 END
13 ORDER BY CASE
14 WHEN ac.flag = 'Y'
15 THEN 1
16 ELSE 2
17 END
18 , SIGN (sourcekey)
19 ) AS rnk
20 FROM itemtable i
21 , finance f
22 , acct ac
23 WHERE i.itemtableid1 = f.parentid1
24 AND i.itemtableid2 = f.parentid2
25 AND f.financekey = ac.financekey
26 AND i.parenttableid = 19216
27 )
28 WHERE rnk = 1;
SOURCEKEY F ACCTKEY
9874 Y 9982 -- Needs to be removed
9875 Y 9983 -- Needs to be removed
9982 N 10008
9983 Y 10009
Output Desired would be
ITEMTABLEID1 ITEMTABLEID2 ACCTKEY F SOURCEKEY
19217 10336 10008 N 9982
19217 10336 10009 Y 9983
SQL> The slight change to the requirement is when we have sourcekey that is same as acctkey then only display the row which has max acctkey. So in this case, the last two row have a sourcekey of 9982, 9983 which is equal to acctkey of first two rows. So, we look for Max(Acctkey) which would be 10008 and 10009 and only display those.
This logic needs to be added on top of the existing logic. So I am not sure how it could be done.
I would really appreciate any help.
SQL> select * from v$version;
BANNER
Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
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 - ProductionEdited by: ARIZ on Jun 16, 2010 7:56 PMHi,
This gets the right results from your sample data.
SELECT ac.sourcekey
, NVL (ac.flag, 'N') AS flag
, ac.acctkey
FROM itemtable i
, finance f
, acct ac
WHERE i.itemtableid1 = f.parentid1
AND i.itemtableid2 = f.parentid2
AND f.financekey = ac.financekey
AND i.parenttableid = 19216
AND ac.acctkey NOT IN ( SELECT sourcekey
FROM acct
WHERE sourcekey IS NOT NULL -- If needed
; I'm a little uncertain of your requirements, so I'm not sure how it will work on your real data.
At least in this new version of the problem, it looks like rows can be chained together, where the sourcekey of one row is the acctkey of the next row. If you want only the first row in each such chain, just look for the ones where the acctkey does not relate back to any sourcekey.
NOT IN is never TRUE if the subquery returns any NULLs. Unless sourcekey has a NOT NULL constraint, you'd better check for it in the NOT IN sub-query. -
How to get all rows that are returned in inner sub query of select statemen
If a sub query in select statement returns more than one row than how to get all those returned rows in the final
output of the query .It will be all right if all column's value repeat and that multiple output of inner query comes
in another column .
How to get that ?As Frank said, you likely want a join, and likely an outer join to replicate the select in the projection. Something like:
SELECT id,stat, section, USER_ID concerned_person
FROM table_all,
left join table2
on room_id = sectoion and
sur_role = 'r001'
WHERE section IN (SELECT code
FROM t_area
WHERE dept= 'p002')An alternative, depending on where and how you are using the statement would be something like:
SQL> WITH t AS (
2 select 1 id from dual union all
3 select 2 id from dual),
4 t1 as (
5 select 1 id, 'One' descr from dual union all
6 select 1, 'Un' from dual union all
7 select 1, 'Une' from dual)
8 SELECT t.id, CURSOR(SELECT t1.id, t1.descr from t1
9 WHERE t1.id = t.id)
10 FROM t;
ID CURSOR(SELECTT1.ID,T
1 CURSOR STATEMENT : 2
CURSOR STATEMENT : 2
ID DESCR
1 One
1 Un
1 Une
2 CURSOR STATEMENT : 2
CURSOR STATEMENT : 2
no rows selectedJohn -
How to find out which sub query returns more than one row
Hi all,
Can any one give me clue ,how to find out which sub query returns more than one row in the following query .
/* Formatted on 2011/05/17 19:22 (Formatter Plus v4.8.8) */
SELECT a.*, ROWNUM AS rnm
FROM (SELECT DISTINCT '1' AS "Page View", ou.org_unit_name AS "Org",
prxm.mbr_idntfr AS "Beneficiary ID",
md.last_name
|| ', '
|| md.first_name AS "Beneficiary Name",
pci.idntfr AS "Tracking No.",
TO_CHAR (TRUNC (req.pa_rqst_date),
'MM/dd/yyyy'
) AS "Request Date",
sts.status_name AS "Status",
req.pa_rqst_sid AS "Request #",
prxm.mbr_sid AS "Mbr_sid",
TO_CHAR
(TRUNC (req.pa_revision_date),
'MM/dd/yyyy'
) AS "Last Updated",
TO_CHAR (psd.TO_DATE, 'MM/dd/yyyy') AS "TO_DATE",
prxpl.prvdr_lctn_iid AS "PRVDR_LCTN_IID",
pd.prvdr_sid AS "PRVDR_SID", 'Y' AS "State View",
DECODE
((SELECT DISTINCT pd.national_prvdr_idntfr
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid =
req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR'),
0, (SELECT prxplo.prvdr_lctn_idntfr
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid = req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR'),
NULL, (SELECT prxplo.prvdr_lctn_idntfr
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid = req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR'),
(SELECT DISTINCT pd.national_prvdr_idntfr
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid =
req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR')
) AS "NPI/ID",
DECODE
((SELECT pd.org_bsns_name
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid = req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR'),
NULL, (SELECT pd.last_name
|| ', '
|| pd.first_name
|| ' '
|| pd.middle_name
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid = req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR'),
(SELECT pd.org_bsns_name
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid = req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR')
) AS "Prvdr Name",
TO_CHAR (psd.from_date,
'MM/dd/yyyy'
) AS "Srvc From Date",
TO_CHAR (req.validity_start_date,
'MM/DD/YYYY'
) AS "Due Date",
(fn_get_busniess_days (TRUNC (req.validity_start_date))
) AS "Days<br>Left",
req.pa_mode_type_lkpcd AS "Source",
TO_CHAR (TRUNC (wmdtl.rtng_date),
'MM/dd/yyyy'
) AS "Assigned On",
NVL (wmdtl.assigned_to_user_name,
'Not Assigned'
) AS "Assigned To",
req.org_unit_sid AS "OrgUnitSid",
TO_CHAR
(wmdtl.modified_date,
'MM/dd/yyyy hh24:mi:ss'
) AS "WTRD_MODIFIED_DATE",
TO_CHAR (wmdtl.rtng_date,
'MM/dd/yyyy'
) AS "WTRD_RTNG_DATE",
req.status_cid AS "PA_STATUS_CID",
TO_CHAR (req.modified_date,
'MM/dd/yyyy'
) AS "PA_REQ_MODIFIED_DATE",
prs.state_pa_srvc_type_code
AS "STATE_PA_SRVC_TYPE_CODE",
wmdtl.wm_pa_task_rtng_dtl_sid
AS "WM_TASK_RTNG_DTL_SID",
wmdtl.assigned_to_user_acct_sid
AS "WTRD_Assigned_to_user_acct_sid",
(fn_get_busniess_days (TRUNC (req.validity_start_date))
) AS "Days<br>LeftSort",
wmdtl.assigned_to_org_unit_sid
AS "WTRD_Assigned_to_OrgUntSid",
DECODE
((SELECT COUNT (*)
FROM pa_request_status prs
WHERE prs.pa_rqst_sid = req.pa_rqst_sid
AND prs.status_cid = 5
AND prs.oprtnl_flag = 'I'),
0, 'N',
'Y'
) AS "SHOW_UTILIZATION"
FROM pa_request req,
pa_certification_identifier pci,
status sts,
pa_request_x_member prxm,
wm_pa_task_routing_detail wmdtl,
pa_service_date psd,
org_unit ou,
pa_request_service prs,
pa_request_x_provider_location prxpl,
provider_location pl,
provider_detail pd,
provider p,
mbr_dmgrphc md
WHERE req.oprtnl_flag = 'A'
AND req.status_cid NOT IN
(20, 30, 70, 25, 80, 96, 85, 5, 97, 98, 101)
AND req.org_unit_sid IN
(3057, 3142, 3058, 3143, 3059, 3144, 3060, 3145,
3061, 3146, 3062, 3147, 3063, 3148, 3064, 3149,
3065, 3150, 3066, 3151, 3067, 3152, 3068, 3153,
3069, 3154, 3070, 3155, 3071, 3156, 3072, 3157,
3073, 3158, 3074, 3159, 3075, 3160, 3076, 3161,
3077, 3162, 3078, 3163, 3079, 3164, 3080, 3165,
3081, 3166, 3082, 3167, 3083, 3168, 3084, 3169,
3085, 3170, 3086, 3171, 3087, 3172, 3088, 3173,
3089, 3174, 3090, 3175, 3091, 3176, 3092, 3177,
3093, 3178, 3094, 3179, 3095, 3180, 3096, 3181,
3097, 3182, 3098, 3183, 3099, 3184, 3100, 3185,
3101, 3186, 3102, 3187, 3103, 3003, 75000104,
75000108, 2006, 75000103, 75000102, 75000113,
75000111, 75000109, 2001, 2009, 75000105,
75000107, 2004, 2010, 2013, 2014, 2005, 2011,
75000112, 2002, 1001, 2012, 75000106, 2007,
75000101, 2003, 75000110, 2008, 3001, 3002, 3019,
3104, 3020, 3105, 3021, 3106, 3022, 3107, 3023,
3108, 3024, 3109, 3025, 3110, 3026, 3111, 3027,
3112, 3028, 3113, 3029, 3114, 3030, 3115, 3031,
3116, 3032, 3117, 3033, 3118, 3034, 3119, 3035,
3120, 3036, 3121, 3037, 3122, 3038, 3123, 3039,
3124, 3040, 3125, 3041, 3126, 3042, 3127, 3043,
3128, 3044, 3129, 3045, 3130, 3046, 3131, 3047,
3132, 3048, 3133, 3049, 3134, 3050, 3135, 3051,
3136, 3052, 3137, 3053, 3138, 3054, 3139, 3055,
3140, 3056, 3141)
AND req.pa_rqst_sid = prs.pa_rqst_sid
AND prs.oprtnl_flag = 'A'
AND prs.pa_rqst_srvc_sid = psd.pa_rqst_srvc_sid
AND psd.oprtnl_flag = 'A'
AND req.pa_rqst_sid = pci.pa_rqst_sid
AND pci.oprtnl_flag = 'A'
AND req.pa_rqst_sid = prxm.pa_rqst_sid
AND prxm.oprtnl_flag = 'A'
AND md.oprtnl_flag = 'A'
AND md.status_cid = 2
AND TRUNC (SYSDATE) BETWEEN md.from_date AND md.TO_DATE
AND prxm.mbr_sid = md.mbr_sid
AND ou.org_unit_sid = req.org_unit_sid
AND ou.oprtnl_flag = 'A'
AND req.pa_rqst_sid = prxpl.pa_rqst_sid
AND prxm.pa_rqst_sid = prxpl.pa_rqst_sid
AND pci.pa_rqst_sid = prxm.pa_rqst_sid
AND pci.pa_rqst_sid = wmdtl.subsystem_task_sid
AND pci.pa_rqst_sid = prxpl.pa_rqst_sid
AND prxpl.pa_prvdr_type_lkpcd = 'RR'
AND prxpl.oprtnl_flag = 'A'
AND req.status_cid = sts.status_cid
AND sts.status_type_cid = 3
AND sts.oprtnl_flag = 'A'
AND prxpl.prvdr_lctn_iid = pl.prvdr_lctn_iid
AND p.prvdr_sid = pd.prvdr_sid
AND p.prvdr_sid = pl.prvdr_sid
AND pd.oprtnl_flag = 'A'
AND pd.status_cid = 2
AND TRUNC (SYSDATE) BETWEEN pd.from_date AND pd.TO_DATE
AND wmdtl.subsystem_task_sid = req.pa_rqst_sid
AND wmdtl.subsystem_lkpcd = 'PA'
AND wmdtl.oprtnl_flag = 'A'
AND req.pa_rqst_date > (SYSDATE - 365)
ORDER BY TO_DATE ("Request Date", 'MM/dd/yyyy hh24:mi:ss') DESC,
"Beneficiary Name" ASC) a
WHERE ROWNUM < 102;regards,
P Prakash
Edited by: BluShadow on 17-May-2011 15:01
added {noformat}{noformat} tags around the code833560 wrote:
Can any one give me clue ,how to find out which sub query returns more than one row in the following query .This is why smaller, simpler queries are easier to work with than huge ones - when something like this goes wrong smaller queries are much eaiser to debug. Unfortunately using smaller, easier-to-work with queries is not always an option
Ganesh is right - you will have to dissect the big query bit by bit until you find the offending subquery. If there is another way I would like to find out about it too.
The easiest way to do this is probably to use block comments to isolate parts of the query bit by bit until you find the offending part. If you carefully examine the subqueries you might be able to figure out which one is returning multiple rows without commenting everything
Good luck!
Maybe you are looking for
-
Audigy 2 Zs platinum pro - Spdif in Prob
I ' ve got an audigy 2 zs platinum pro card and xbox hooked up to its optical in. Here is my problem: - At boot up of xbox a stereo signal is coming out of it in dashboard menu. I can hear the sound coming out of the front speakers. When I start a ga
-
When typing a ? I get É and am wondering how to change it.?
My poor sister has her Powerbook G4 and has no ? button. Every time she types it in she get the Capital E with the accent mark over it. Re-starting the computer doesnt fix it either. I know how to toggle it back and forth on Windows (having just lear
-
I have been using jsp tags (.tag) in my JSF-JSPs to reuse components. As I have seen, Oracle recommends using .jspx instead of .jsp, so in my way to create a new application using jspx I found that I can not make the jsp tag work (using jspx and tagx
-
Hi, I have different scenerios here and getting error in few, Help me to identify the problem in 2 and 3 scenerios. Oracle DB Server is 11.2.0.3.0 in RHEL 6 server Oracle Client is 11.2.0.1 in another RHEL 6 server Trying to connect DB Server from Or
-
HELP!!! SPEAKER PROBLEM!!!
My speaker wont work!!! My built in speaker worked fine then I plugged it into iTunes now it wont play then it sounded from the speaker then it went into headphone mode HELP!!