How to replace a NOT IN Query to a join?
Hi,
I have heard join queries are faster than NOT IN. Could anyone please help in converting the below query to a join query? Since, there is only one table, am not sure, if self- reference needs to be made.
Select id, name from department
where id NOT IN
*(Select id from department group by id having count(id)>1)*
order by id;Any help in this regard will be highly appreciated.
Thanks.
A normal NOT IN subquery can usually be rewritten with a left join and a check for null.
example
/* subquery */
Select id, name from department
where id NOT IN (Select dept_id from employees);
/* joined query */
Select id, name from department
left join employees on department.id = employees.dept_id
where employees.dept_id is null;You have a group by logic in there. THis is different. it could be made into a join like this.
/* original */
Select id, name from department
where id NOT IN (Select id from department group by id having count(id)>1);
/* join */
Select d1.id, d1.name
from department d1
join department d2 on d1.id = d2.id
group by d1.id, d1.name
having count(*) > 1;However your statement does not make any sense. The ID column should be unique. So there can't be any duplicates.
If the ID is not unique and if you just want to see which departments do not have duplicates then a logic is better (faster) where you use the table departments only one time.
This code would be almost equivalent.
Select id, min(name) as first_department_name, count(*) departments_duplicate_ID#
from department
group by id
having count(*) > 1;Edited by: Sven W. on Jun 22, 2011 4:51 PM - typos
Similar Messages
-
How to replace # or Not assigned with blank in BEx Query Output.
Hi,
While running the query through BEx Query desginer or Anlayser, I am getting # or Not assigned where there are no values.
The requirement is to "Replace # or Not assigned with a blank" in the output.
I want to know, is there any setting in BEx query desginer where we can do this. How to do this.
Please share your inputs on this. Any inputs on this would be appreciated.
Thanks,
NaveenCheck out SDN-thread: "Re: Remove 'Not assigned'" for more details
Ideas from SDN research:
"a solution i have used is to put each RKF column in a CKF colum then in each CKF use RKF + 0, the outcome is that your # should now be 0s, in the query properties you can set the option to display 0s as blank."
"try to enter a text for the blank entry in the master data maintenance of the relevant objects and set the display option for the objects to 'text'."
Threads:
SDN: How to replace # or Not assigned with blank in BEx Query Output.
SDN: Re: Remove 'Not assigned
SDN: How to replace # or (Not assigned) with blank in BEx Query Output.
SDN: Bex Analyzer : Text element system's table ?
SDN: change message in web application designer ["nonavailable" -> 136 of SAPLRRSV]
SDN: Not Assigned ["Not Assigned -> 027 of SAPLRRSV]
SDN: replacing '#'-sign for 'not assigned' in queries
SDN: # in report when null in the cube
SDN: How to replace '#' with blank when there is no value for a date field
Edited by: Thomas Köpp on Sep 13, 2010 5:20 PM -
How to use the not exists query
Hello,
Using obiee 11g,
i would like to know how to deal with not exists query in the obiee11g,
the query is like this
select count(a.col1),a.col2 from table1 a ,table2 b where a.col1=b.col1
and not exists
(select d.col1 from table3 d, table4 e
where d.col1=e.col1 and d.col1=a.col1)
group by a.col2
there are 4 tables.
table1,table2,table3,tabel4
this is what i need in a report,these tables are used in othere places also,
would prefer if its possible to do in for a report i.e.e analysis itself.
If not possible then may be in rpd since if i change in rpd it may reflect every place
and not in for a report itself.
thanksImplement this in report itself can be a tricky and tedious job..But better to have it in RPD - Physical - Select Table type
USE NOT IN in place of NOT Exist..You can simply use SELECT statement in SELECT TABLE TYPE
Hope it clear -
How to replace # in the query output ?
Hi experts,
In the query output and for a particular field in a record if there is no value then it is displaying as '#'.
Can we replace '#' with any text or with any other value ?
Regards,
Nishuv V.hello,
if you display the characteristics as Key u will get as '#'.
You can select as Text,then it will show 'Not Assigned'.
Further, check on these threads:
How to replace '#' with blank when there is no value for a date field
Re: How to replace display attribute Value '0', instead of '#' in the query
Reg,
Dhanya -
My iphone 5 the volume bottom does not work how to replace it in apple sotre
My iphone 5 the volume bottom does not work how to replace it in apple sotre
i read sb said they only replace the iphone by pay more 210 quid is this ture ?Hi Austin XQ,
Thanks for visiting Apple Support Communities.
Based on the information you have provided, it sounds like your iPhone needs to be serviced. The following link should help you get started with the process and has links with additional information on topics such as warranty and service pricing, battery replacement, and express replacement service.
http://support.apple.com/kb/index?page=servicefaq&geo=United_States&product=ipho ne
Best,
Jeremy -
How to replace #Missing for a 0 number and not '0
Hello, I will like to know if any of you know how to replace in Excel the #Missing for a 0 (number 0), and not '0 (text 0), that is what it always return.
ThanksGreat Tim!!
Though i did not raise this question, i have been having this in mind for months from now.
This worked like a magic.
Yes you are right, it is not advisable when the sheet is meant for lock and send as it would create unwanted blocks.
Thanks for your help.
With Regards,
Rajkumar -
How to know whether the phone is replaced or not?
Dear All,
Please help in how to know whether Iphone 5 is replaced or not? I came to know that on replacement, imei number gets changed. please make me aware.Nobody here can make you aware. You need to contact Apple directly.
-
My power and volume button is not working how i replace and how much charges??
my power and volume button is not working how i replace and how much charges??
$269
Out-of-warranty* cost:
iPhone 6 Plus: $329
iPhone 6: $299
iPhone 5s, iPhone 5c, iPhone 5: $269
iPhone 4s: $199
iPhone 4, iPhone 3GS, iPhone 3G, Original iPhone: $149 -
How to show attributes only in query panel but not in Add fields.
Hi,
Jdev - 11.1.1.7.0
I have a requirement where I need to show attribute only in search panel but not in Add Fields list which is available in advanced section.
Thanks for your time and help.
Regards,
Dileep.Hi,
Is it really possible implement this kind of scenario, I could not find any property to disable the attribute only 'Add Fields' but not in query panel.
Please some one confirm me this behavior.
Thanks,
Dileep. -
How to replace double quotes with a single quote in a string ?
Hi All:
Can some one tell me how to replace double Quote (") in a string with a single quote (') ? I tried to use REPLACE function, but I couldn;t get it worked.
My example is SELECT REPLACE('STN. "A"', '"', ''') FROM Dual --This one throws an error
Thanks,
Dima.Whether it is maybe not the more comfortable way, I like the quoting capabitlity from 10g :
SQL> SELECT REPLACE('STN. "A"', '"', q'(')') FROM Dual;
REPLACE(
STN. 'A'{code}
Nicoals. -
How to replace single quote with double quote
hai all,
i have a problem,
i am trying insert a string containing single quote into ms-access database.
it is giving error.
how can i avoid this .if i replace a single quote in the text with double quote it will defenitely
insert into database.
in java.lang.String
replace () will not work to replace quote with double quote.
any otherway to solve this problem.
please mail me to [email protected]
thank you
sambareddy
inidajava.lang.String.replace () will not work to replace quote with double quote.Really?
String x = ...
x.replace( "'", "\"" ); -
How to compare result from sql query with data writen in html input tag?
how to compare result
from sql query with data
writen in html input tag?
I need to compare
user and password in html form
with all user and password in database
how to do this?
or put the resulr from sql query
in array
please help me?Hi dejani
first get the user name and password enter by the user
using
String sUsername=request.getParameter("name of the textfield");
String sPassword=request.getParameter("name of the textfield");
after executeQuery() statement
int exist=0;
while(rs.next())
String sUserId= rs.getString("username");
String sPass_wd= rs.getString("password");
if(sUserId.equals(sUsername) && sPass_wd.equals(sPassword))
exist=1;
if(exist==1)
out.println("user exist");
else
out.println("not exist"); -
Replacement Path variable with query
Hi all,
I have a replacement path variable in a query that use the result from other query (a pre-query), both of them use the same variables, exactly the same, although the query ask me for the values of the variables twice (for the query and for the pre-query), is possible that the query ask me for the variables only one time (re-use the same values for both queries)?
Thanks,
JavierIf possible use only the variable with replacement path on the query. Since the Pre-query has all the same variables as the main query, the user would enter all the required input on the pre-query one time. The result of the pre--query feeds the main query. If the main query has no other selection variables except for the replacement path, the selection screen will not pop up again.
Thanks
Vineet -
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! -
In DBI , how to find out the Source Query used for the Report
Hi All,
How to find out the Source Query used to display the data in the DBI Reports or Dashboards. We can get it in Apps Front end by Going to Help and Record Histroty. But DBI Runs in Internet Explorer so i dont know how to get the source query ( SELECT Query ) Used.
In IE we have View --> Source . But that does not help since it gives the HTML Coding and not the SELECT Query used.
If anyone has ever worked on it...Please help me in finding it.
Thanks,
Neeraj ShrivastavaHi neeraj,
You can see the query used to display reports.Follow these steps to get the query.
1)Login to oracle apps
2)Select "Daily Business Intelligence Administrator" responsiblity.
3)Now click on "Enable/Disable Debugging" (Now u enabled debugging)
4)now open the report which you want to see the query of
5)In view source it displays query along with the bind varilables.
Feel free to ping me if you have any doubts
thanks
kittu
Maybe you are looking for
-
Hiding fields in a screen using BADI
Hi Experts I want to invisible certain fields in the screen for certain users and it should be made visible for certain users,the requirement is to do with badi.Can anyone help me regarding this issue. Thanks & Regards Pravitha
-
2 Apps will not sync due to error??
I just purchased a few apps and two of them will not sync to my touch. I am getting a pop up box that says error OXE800002D and OXE8000013. I haven't had this response before. Does anyone know how to get this to work? Thanks!
-
Late 2008 Macbook Air Hinge Problem
Hi guys, I bought a used Macbook Air a few months ago, I absolutely love it. However the hinge has been getting kinda loose, to the point where the screen will start to fall backwards if the laptop is moved at all. I am told Apple replaces the hinges
-
Syncing new Ipad to iTunes??
I have an iPhone4 that is synced to my laptop for itunes... I just got my 1st iPad, (new one), and was wondering if I use my laptop to sync to iTunes also?? Or will it delete all my iPhone stuff?
-
I am using HomePage as my download page for my iWeb site (which you can't do on iWeb, but does anyone know if you can do this on iWeb 8?). I have used this process before and have simply added pdf files to my Public folder in iDisk. When I try to add