Tunning of below query
Hi,
Please help in tunning of the below.
(SELECT T1.TRANSACTIONID, T1.NARRATION, T1.DEBITCREDITFLAG,
T1.ACCOUNTPRODUCT_ACCPRODID ACCOUNTID, T1.POSTINGDATE, T1.VALUEDATE,T1.AMOUNT from wasadmin.transaction t1 where t1.transactionid in (
select t.transactionid
from wasadmin.transaction t
where T.POSTINGDATE BETWEEN (SELECT BFLASTFREEZETIME FROM bankfusion.BFTB_PERSISTENTTAG)
AND(SELECT BFCURRENTFREEZETIME FROM bankfusion.BFTB_PERSISTENTTAG)
group by t.transactionid
having sum(t.amount) != 0))
Transaction table is huge table with lot of records. it taking 30 min fetch the data.
It looks like the table bankfusion.BFTB_PERSISTENTTAG has only one row. Is this true?
How about this:
SELECT t1.TRANSACTIONID, t1.NARRATION, t1.DEBITCREDITFLAG, t1.ACCOUNTPRODUCT_ACCPRODID ACCOUNTID,
t1.POSTINGDATE, t1.VALUEDATE, t1.AMOUNT
from wasadmin.transaction t1,
(select transactionid, sum(amount) amount
from wasadmin.transaction
where POSTINGDATE BETWEEN (SELECT BFLASTFREEZETIME FROM bankfusion.BFTB_PERSISTENTTAG)
AND (SELECT BFCURRENTFREEZETIME FROM bankfusion.BFTB_PERSISTENTTAG)
group by transactionid
having sum(amount) != 0) t2
where t1.transactionid = t2.transactionid
and t1.POSTINGDATE BETWEEN (SELECT BFLASTFREEZETIME FROM bankfusion.BFTB_PERSISTENTTAG)
AND (SELECT BFCURRENTFREEZETIME FROM bankfusion.BFTB_PERSISTENTTAG)I would actually prefer to see the BFTB_PERSISTENTTAG values obtained beforehand and then plugged into the main query with bind variables:
select BFLASTFREEZETIME, BFCURRENTFREEZETIME
into v_last_freeze_time, v_curr_freeze_time
from bankfusion.BFTB_PERSISTENTTAG;
SELECT t1.TRANSACTIONID, t1.NARRATION, t1.DEBITCREDITFLAG, t1.ACCOUNTPRODUCT_ACCPRODID ACCOUNTID,
t1.POSTINGDATE, t1.VALUEDATE, t1.AMOUNT
from wasadmin.transaction t1,
(select transactionid, sum(amount) amount
from wasadmin.transaction
where POSTINGDATE BETWEEN v_last_freeze_time AND v_curr_freeze_time
group by transactionid
having sum(amount) != 0) t2
where t1.transactionid = t2.transactionid
and t1.POSTINGDATE BETWEEN v_last_freeze_time AND v_curr_freeze_time
Similar Messages
-
Request for tunning the below query
Hi,
Can any one help me on the below query while improving the performance,
SELECT accdet, acceprec, accinvalid, accnetanal, accphy, accvalid,
actlabcost, actlabhrs, actualcontactdate, actualfinish, actualstart,
affecteddate, affectedemail, affectedperson, affectedphone,
alteration, aslaiddwg, assetnum, assetorgid, assetsiteid,
assumptions, basedet, basereq, bicounty, bidplo, bieasting,
bihousename, bihouseno, binorthing, bipobox, bipostcode, biposttown,
bistreet, bisubb as bisupp, boostcomp, boostcompdet, ccemail, cchouseno, ccid,
ccname, cctel1type, cctel2type, cctelephone1, cctelephone2, cdm,
changeby, changedate, CLASS, classstructureid, cocontact, cocounty,
codplo, coeasment, coeasting, cohousename, conorthing, copobox,
commodity, commoditygroup, coneasereq, consent, consents,
copostcode, coposttown, costcon, costreet, cosubb, cpi90,
createworelasset, customerref, custtype, depot, description, durt,
ecvpressuretier, ecvsize, enduserid, engdifficult, exaoq, existin,
existsdq, expid, exshq, externalrecid, extralanddetail, failurecode,
fr1code, fr2code, fuelpovscheme, g17, gbna, glaccount,
globalticketclass, globalticketid, govconf, govener, govenerdet,
govhouse, hasactivity, hasld, historyflag, impact, infill,
infoprovide, inheritstatus, internalpriority, interquote, isglobal,
isknownerror, isknownerrordate, kioskdet, kioskreq, langcode,
latecertdate, leadt, lengthpri, lengthpub, loadtype, LOCATION, m25,
maindesac, mainusage, meterboxty, metercon, meterloc, meterser,
mininforec, mininforeq, mprnno, newaoq, newpid, newsdq, newshq,
np14, nrswa, nsgno, oldquotever, oldticketid, orgid, originsgn,
origrecordclass, origrecordid, origrecorgid, origrecsiteid, owner,
ownergroup, packagesent, paymethod, payterms, permittowork, physub,
pressuretier, privateexc, problemcode, propertiesno, propertytype,
publicexc, purgerel, quotedate, quotetype, quotever, reinforcement,
reinforcementa, reinforcementb, relatedtoglobal, reportdate,
reportedby, reportedemail, reportedphone, reportedpriority,
rowstamp, sc, scj, scoreq, servicerelay, sgnbillcontact,
sgnblkbyfin, sgncusttobill, sgncusttosite, sgndisreasoth,
sgneasment, sgnenhance, sgneow, sgneowreq, sgngqmvalid,
sgninfillcost, sgninfillver, sgninfprojno, sgnisstdchrg,
sgnloadnoenter, sgnmainsreq, sgnmaxaccdate, sgnnoncont, sgnpipesiz,
sgnpurord, sgnqdaysremain, sgnqstd, sgnquotdate, sgnquotval,
sgnreasdis, sgntotalaoq, sgntotalshq, sgnvarreq, sicontact,
sicounty, sidplo, sieasting, sihousename, sihouseno, sinorthing,
sipobox, sipostcode, siposttown, sistreet, sisubb, sitecond, sitegt,
siteid, sitel1, sitel2, siteplpro, sitevisit, solution, sos,
sosrecdate, SOURCE, status, statusdate, subfinal, supervisor,
supplytype, surveycarr, surveydef, surveyreas, surveyreq, surveyret,
surveysent, targetcontactdate, targetfinish, targetstart, TEMPLATE,
templateid, termtype, thirdpartyeas, thirdpartypipe, ticketid,
ticketuid, totalaoq, totalpid, totalsdq, totalshq, traffictime,
typewo, urgency, variat, vendor, customer_enquiry_ref,
quote_version, costs, mains_infill_charge, mtr_housing_kiosk_charge,
mtr_housing_kiosk_base_charge, specialist_reinstatement,
easement_charge, total_quote_ex_vat, vat, total_quote_incl_vat,
design_charge, reinforcement_charge, reinforcement_cost,
connection_allowance, workorder.pscdate, workorder.ascdate,
workorder.fincode, workorder.istask, workorder.status,
workorder.targstartdate, workorder.targcompdate,
workorder.schedfinish, workorder.actfinish, workorder.estdur,
workorder.wonum, workorder.mprn,
workorder.sihousename AS wositehousename,
workorder.sihouseno AS wositehouseno,
workorder.sistreet AS wositestreet,
workorder.sicounty AS wositecounty,
workorder.siposttown AS wositeposttown,
workorder.sipostcode AS wositepostcode, workorder.workorderid
FROM (maximo.sr
INNER JOIN
(maximo.relatedrecord INNER JOIN maximo.workorder
ON relatedrecord.relatedreckey =
(CASE
WHEN workorder.PARENT IS NOT NULL
THEN workorder.PARENT
ELSE workorder.wonum
END
AND relatedrecord.orgid = workorder.orgid
AND relatedrecord.siteid = workorder.siteid
AND relatedrecord.relatedrecclass = 'WORKORDER')
ON sr.ticketid = relatedrecord.recordkey
AND sr.orgid = relatedrecord.orgid
AND sr.siteid = relatedrecord.siteid
AND relatedrecord.CLASS = 'SR')
LEFT JOIN
frozen_quote@gqmfof
ON sr.ticketid = customer_enquiry_ref
AND sr.quotever = quote_version
Regards,
graceCould you please provide more info.
Refer to the following link.
When your query takes too long ...
thanks -
Need to tune the below query.
Query below:
I have generated the explain plan for the same and its cost is overall 2089...
But Strange once I have removed the "ORDER SIBLINGS BY RETAILER_NM" from below then its cost is coming overall 40.
Can U suggest me what is the best solution.
SELECT path as Retailer_id, logical_physical_flg, parent_retailer_id, upper(retailer_nm), max_level
FROM (SELECT A.RETAILER_ID,LOGICAL_PHYSICAL_FLG, NULL AS PARENT_RETAILER_ID, B.RETAILER_NM, a.retailer_id path,
(LEVEL+2) AS MAX_LEVEL FROM
RETAILER B, USER_RETAILER_MAP A WHERE USER_ID= 'ALEX.CAYLESS@GMACIO' AND
B.RETAILER_ID=A.RETAILER_ID AND B.STATUS='ACTIVE' AND
A.RETAILER_ID NOT IN (SELECT DISTINCT RETAILER_ID FROM
RETAILER_HIERARCHY START WITH PARENT_RETAILER_ID IN (SELECT RETAILER_ID FROM USER_RETAILER_MAP A
WHERE USER_ID= 'ALEX.CAYLESS@GMACIO' AND MANAGED_BY='Y') CONNECT BY PRIOR RETAILER_ID=PARENT_RETAILER_ID)
AND MANAGED_BY='Y'
UNION
SELECT a.RETAILER_ID, LOGICAL_PHYSICAL_FLG, replace(sys_connect_by_path(decode(level, 1, a.parent_retailer_id), '~'), '~') parent_retailer_id, RETAILER_NM, LPAD(' ', 2*LEVEL-1)||SYS_CONNECT_BY_PATH(B.RETAILER_ID, '/') AS path, LEVEL+3 AS MAX_LEVEL
FROM RETAILER B, RETAILER_HIERARCHY A
WHERE B.RETAILER_ID=A.RETAILER_ID AND UPPER(B.STATUS)='ACTIVE' AND EXISTS
(SELECT RETAILER_ID FROM USER_RETAILER_MAP C WHERE USER_ID = 'ALEX.CAYLESS@GMACIO' AND
B.RETAILER_ID = C.RETAILER_ID AND MANAGED_BY= 'Y')
START WITH PARENT_RETAILER_ID IN (SELECT A.RETAILER_ID FROM
RETAILER B, USER_RETAILER_MAP A WHERE USER_ID= 'ALEX.CAYLESS@GMACIO' AND B.RETAILER_ID=A.RETAILER_ID
AND UPPER(B.STATUS)='ACTIVE' AND A.RETAILER_ID NOT IN (SELECT DISTINCT RETAILER_ID FROM
RETAILER_HIERARCHY START WITH PARENT_RETAILER_ID IN (SELECT RETAILER_ID FROM USER_RETAILER_MAP A
WHERE USER_ID= 'ALEX.CAYLESS@GMACIO' AND MANAGED_BY='Y') CONNECT BY PRIOR RETAILER_ID=PARENT_RETAILER_ID)
AND MANAGED_BY='Y') CONNECT BY PRIOR A.RETAILER_ID=PARENT_RETAILER_ID )
START WITH PARENT_RETAILER_ID IS NULL CONNECT BY PRIOR RETAILER_ID = PARENT_RETAILER_ID
ORDER SIBLINGS BY RETAILER_NM
Explain Plan:
==========================
PLAN_TABLE_OUTPUT
| Id | Operation | Name | Rows | Bytes | Cost |
| 0 | SELECT STATEMENT | | 1352 | 5385K| 2089 |
|* 1 | CONNECT BY WITH FILTERING | | | | |
|* 2 | FILTER | | | | |
| 3 | COUNT | | | | |
| 4 | VIEW | | 1352 | 5385K| 40 |
| 5 | SORT UNIQUE | | 1352 | 84128 | 40 |
| 6 | UNION-ALL | | | | |
|* 7 | HASH JOIN ANTI | | 16 | 1296 | 12 |
|* 8 | HASH JOIN | | 19 | 1406 | 9 |
| 9 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 19 | 570 | 2 |
|* 10 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 2409 | | 1 |
|* 11 | TABLE ACCESS FULL | RETAILER | 1594 | 70136 | 6 |
| 12 | VIEW | VW_NSO_1 | 3 | 21 | 2 |
|* 13 | CONNECT BY WITH FILTERING | | | | |
| 14 | NESTED LOOPS | | | | |
|* 15 | HASH JOIN | | 58 | 2262 | 5 |
| 16 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 19 | 570 | 2 |
|* 17 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
| 18 | INDEX FAST FULL SCAN | AX_RET_HIER | 1336 | 12024 | 2 |
| 19 | TABLE ACCESS BY USER ROWID | RETAILER_HIERARCHY | | | |
| 20 | NESTED LOOPS | | | | |
| 21 | BUFFER SORT | | 3 | 54 | |
| 22 | CONNECT BY PUMP | | | | |
|* 23 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 3 | 54 | 2 |
|* 24 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|* 25 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|* 26 | FILTER | | | | |
|* 27 | CONNECT BY WITH FILTERING | | | | |
|* 28 | FILTER | | | | |
| 29 | COUNT | | | | |
|* 30 | HASH JOIN | | 1336 | 82832 | 9 |
| 31 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 1336 | 24048 | 2 |
| 32 | TABLE ACCESS FULL | RETAILER | 3188 | 136K| 6 |
| 33 | NESTED LOOPS ANTI | | 1 | 54 | 5 |
| 34 | NESTED LOOPS | | 1 | 47 | 3 |
|* 35 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|* 36 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|* 37 | TABLE ACCESS BY INDEX ROWID | RETAILER | 1 | 17 | 1 |
|* 38 | INDEX UNIQUE SCAN | XPKRETAILER | 100 | | |
|* 39 | VIEW | VW_NSO_3 | 3 | 21 | |
|* 40 | CONNECT BY WITH FILTERING | | | | |
| 41 | NESTED LOOPS | | | | |
|* 42 | HASH JOIN | | 58 | 2262 | 5 |
| 43 | TABLE ACCESS BY INDEX ROWID| USER_RETAILER_MAP | 19 | 570 | 2 |
|* 44 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
| 45 | INDEX FAST FULL SCAN | AX_RET_HIER | 1336 | 12024 | 2 |
| 46 | TABLE ACCESS BY USER ROWID | RETAILER_HIERARCHY | | | |
| 47 | NESTED LOOPS | | | | |
| 48 | BUFFER SORT | | 3 | 54 | |
| 49 | CONNECT BY PUMP | | | | |
|* 50 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 3 | 54 | 2 |
|* 51 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|* 52 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
| 53 | HASH JOIN | | | | |
| 54 | CONNECT BY PUMP | | | | |
| 55 | COUNT | | | | |
|* 56 | HASH JOIN | | 1336 | 82832 | 9 |
| 57 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 1336 | 24048 | 2 |
| 58 | TABLE ACCESS FULL | RETAILER | 3188 | 136K| 6 |
| 59 | NESTED LOOPS ANTI | | 1 | 54 | 5 |
| 60 | NESTED LOOPS | | 1 | 47 | 3 |
|* 61 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|* 62 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|* 63 | TABLE ACCESS BY INDEX ROWID | RETAILER | 1 | 17 | 1 |
|* 64 | INDEX UNIQUE SCAN | XPKRETAILER | 100 | | |
|* 65 | VIEW | VW_NSO_3 | 3 | 21 | |
|* 66 | CONNECT BY WITH FILTERING | | | | |
| 67 | NESTED LOOPS | | | | |
|* 68 | HASH JOIN | | 58 | 2262 | 5 |
| 69 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 19 | 570 | 2 |
|* 70 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
| 71 | INDEX FAST FULL SCAN | AX_RET_HIER | 1336 | 12024 | 2 |
| 72 | TABLE ACCESS BY USER ROWID | RETAILER_HIERARCHY | | | |
| 73 | NESTED LOOPS | | | | |
| 74 | BUFFER SORT | | 3 | 54 | |
| 75 | CONNECT BY PUMP | | | | |
|* 76 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 3 | 54 | 2 |
|* 77 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|* 78 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|* 79 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|* 80 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
| 81 | HASH JOIN | | | | |
| 82 | CONNECT BY PUMP | | | | |
| 83 | COUNT | | | | |
| 84 | VIEW | | 1352 | 5385K| 40 |
| 85 | SORT UNIQUE | | 1352 | 84128 | 40 |
| 86 | UNION-ALL | | | | |
|* 87 | HASH JOIN ANTI | | 16 | 1296 | 12 |
|* 88 | HASH JOIN | | 19 | 1406 | 9 |
| 89 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 19 | 570 | 2 |
|* 90 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 2409 | | 1 |
|* 91 | TABLE ACCESS FULL | RETAILER | 1594 | 70136 | 6 |
| 92 | VIEW | VW_NSO_1 | 3 | 21 | 2 |
|* 93 | CONNECT BY WITH FILTERING | | | | |
| 94 | NESTED LOOPS | | | | |
|* 95 | HASH JOIN | | 58 | 2262 | 5 |
| 96 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 19 | 570 | 2 |
|* 97 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
| 98 | INDEX FAST FULL SCAN | AX_RET_HIER | 1336 | 12024 | 2 |
| 99 | TABLE ACCESS BY USER ROWID | RETAILER_HIERARCHY | | | |
| 100 | NESTED LOOPS | | | | |
| 101 | BUFFER SORT | | 3 | 54 | |
| 102 | CONNECT BY PUMP | | | | |
|*103 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 3 | 54 | 2 |
|*104 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|*105 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|*106 | FILTER | | | | |
|*107 | CONNECT BY WITH FILTERING | | | | |
|*108 | FILTER | | | | |
| 109 | COUNT | | | | |
|*110 | HASH JOIN | | 1336 | 82832 | 9 |
| 111 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 1336 | 24048 | 2 |
| 112 | TABLE ACCESS FULL | RETAILER | 3188 | 136K| 6 |
| 113 | NESTED LOOPS ANTI | | 1 | 54 | 5 |
| 114 | NESTED LOOPS | | 1 | 47 | 3 |
|*115 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|*116 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|*117 | TABLE ACCESS BY INDEX ROWID | RETAILER | 1 | 17 | 1 |
|*118 | INDEX UNIQUE SCAN | XPKRETAILER | 100 | | |
|*119 | VIEW | VW_NSO_3 | 3 | 21 | |
|*120 | CONNECT BY WITH FILTERING | | | | |
| 121 | NESTED LOOPS | | | | |
|*122 | HASH JOIN | | 58 | 2262 | 5 |
| 123 | TABLE ACCESS BY INDEX ROWID| USER_RETAILER_MAP | 19 | 570 | 2 |
|*124 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
| 125 | INDEX FAST FULL SCAN | AX_RET_HIER | 1336 | 12024 | 2 |
| 126 | TABLE ACCESS BY USER ROWID | RETAILER_HIERARCHY | | | |
| 127 | NESTED LOOPS | | | | |
| 128 | BUFFER SORT | | 3 | 54 | |
| 129 | CONNECT BY PUMP | | | | |
|*130 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 3 | 54 | 2 |
|*131 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|*132 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
| 133 | HASH JOIN | | | | |
| 134 | CONNECT BY PUMP | | | | |
| 135 | COUNT | | | | |
|*136 | HASH JOIN | | 1336 | 82832 | 9 |
| 137 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 1336 | 24048 | 2 |
| 138 | TABLE ACCESS FULL | RETAILER | 3188 | 136K| 6 |
| 139 | NESTED LOOPS ANTI | | 1 | 54 | 5 |
| 140 | NESTED LOOPS | | 1 | 47 | 3 |
|*141 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|*142 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|*143 | TABLE ACCESS BY INDEX ROWID | RETAILER | 1 | 17 | 1 |
|*144 | INDEX UNIQUE SCAN | XPKRETAILER | 100 | | |
|*145 | VIEW | VW_NSO_3 | 3 | 21 | |
|*146 | CONNECT BY WITH FILTERING | | | | |
| 147 | NESTED LOOPS | | | | |
|*148 | HASH JOIN | | 58 | 2262 | 5 |
| 149 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 19 | 570 | 2 |
|*150 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
| 151 | INDEX FAST FULL SCAN | AX_RET_HIER | 1336 | 12024 | 2 |
| 152 | TABLE ACCESS BY USER ROWID | RETAILER_HIERARCHY | | | |
| 153 | NESTED LOOPS | | | | |
| 154 | BUFFER SORT | | 3 | 54 | |
| 155 | CONNECT BY PUMP | | | | |
|*156 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 3 | 54 | 2 |
|*157 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|*158 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|*159 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|*160 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
Predicate Information (identified by operation id):
1 - filter("from$_subquery$_001"."PARENT_RETAILER_ID" IS NULL)
2 - filter("from$_subquery$_001"."PARENT_RETAILER_ID" IS NULL)
7 - access("A"."RETAILER_ID"="VW_NSO_1"."$nso_col_1")
8 - access("B"."RETAILER_ID"="A"."RETAILER_ID")
10 - access("A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."MANAGED_BY"='Y')
11 - filter("B"."STATUS"='ACTIVE')
13 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILER_MAP" "A" WHERE "A"."USER_ID"='ALEX.CAYLES
S@GMACIO' AND "A"."RETAILER_ID"=:B1 AND "A"."MANAGED_BY"='Y'))
15 - access("RETAILER_HIERARCHY"."PARENT_RETAILER_ID"="A"."RETAILER_ID")
17 - access("A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."MANAGED_BY"='Y')
23 - filter("SYS_ALIAS_1"."PARENT_RETAILER_ID"=NULL)
24 - filter("A"."MANAGED_BY"='Y')
25 - access("A"."RETAILER_ID"=:B1 AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO')
26 - filter(UPPER("SYS_ALIAS_1"."STATUS")='ACTIVE' AND EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILE
R_MAP" "C" WHERE "C"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "C"."RETAILER_ID"=:B1 AND "C"
."MANAGED_BY"='Y'))
27 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILER_MAP" "A","RETAILER" "B", (SELECT /*+ */ "
SYS_ALIAS_1"."RETAILER_ID" "$nso_col_1" FROM "RETAILER_HIERARCHY" "SYS_ALIAS_1" WHERE
"SYS_ALIAS_1"."PARENT_RETAILER_ID"=NULL) "VW_NSO_3" WHERE "A"."RETAILER_ID"="VW_NSO_3"
."$nso_col_1" AND "B"."RETAILER_ID"="A"."RETAILER_ID" AND UPPER("B"."STATUS")='ACTIVE'
AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."RETAILER_ID"=:B1 AND "A"."MANAGED_BY
"='Y'))
28 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILER_MAP" "A","RETAILER" "B", (SELECT /*+ */ "
SYS_ALIAS_1"."RETAILER_ID" "$nso_col_1" FROM "RETAILER_HIERARCHY" "SYS_ALIAS_1" WHERE
"SYS_ALIAS_1"."PARENT_RETAILER_ID"=NULL) "VW_NSO_3" WHERE "A"."RETAILER_ID"="VW_NSO_3"
."$nso_col_1" AND "B"."RETAILER_ID"="A"."RETAILER_ID" AND UPPER("B"."STATUS")='ACTIVE'
AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."RETAILER_ID"=:B1 AND "A"."MANAGED_BY
"='Y'))
30 - access("SYS_ALIAS_1"."RETAILER_ID"="SYS_ALIAS_2"."RETAILER_ID")
35 - filter("A"."MANAGED_BY"='Y')
36 - access("A"."RETAILER_ID"=:B1 AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO')
37 - filter(UPPER("B"."STATUS")='ACTIVE')
38 - access("B"."RETAILER_ID"="A"."RETAILER_ID")
39 - filter("A"."RETAILER_ID"="VW_NSO_3"."$nso_col_1")
40 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILER_MAP" "A" WHERE "A"."USER_ID"='ALEX.CAYLES
S@GMACIO' AND "A"."RETAILER_ID"=:B1 AND "A"."MANAGED_BY"='Y'))
42 - access("RETAILER_HIERARCHY"."PARENT_RETAILER_ID"="A"."RETAILER_ID")
44 - access("A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."MANAGED_BY"='Y')
50 - filter("SYS_ALIAS_1"."PARENT_RETAILER_ID"=NULL)
51 - filter("A"."MANAGED_BY"='Y')
52 - access("A"."RETAILER_ID"=:B1 AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO')
56 - access("SYS_ALIAS_1"."RETAILER_ID"="SYS_ALIAS_2"."RETAILER_ID")
61 - filter("A"."MANAGED_BY"='Y')
62 - access("A"."RETAILER_ID"=:B1 AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO')
63 - filter(UPPER("B"."STATUS")='ACTIVE')
64 - access("B"."RETAILER_ID"="A"."RETAILER_ID")
65 - filter("A"."RETAILER_ID"="VW_NSO_3"."$nso_col_1")
66 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILER_MAP" "A" WHERE "A"."USER_ID"='ALEX.CAYLES
S@GMACIO' AND "A"."RETAILER_ID"=:B1 AND "A"."MANAGED_BY"='Y'))
68 - access("RETAILER_HIERARCHY"."PARENT_RETAILER_ID"="A"."RETAILER_ID")
70 - access("A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."MANAGED_BY"='Y')
76 - filter("SYS_ALIAS_1"."PARENT_RETAILER_ID"=NULL)
77 - filter("A"."MANAGED_BY"='Y')
78 - access("A"."RETAILER_ID"=:B1 AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO')
79 - filter("C"."MANAGED_BY"='Y')
80 - access("C"."RETAILER_ID"=:B1 AND "C"."USER_ID"='ALEX.CAYLESS@GMACIO')
87 - access("A"."RETAILER_ID"="VW_NSO_1"."$nso_col_1")
88 - access("B"."RETAILER_ID"="A"."RETAILER_ID")
90 - access("A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."MANAGED_BY"='Y')
91 - filter("B"."STATUS"='ACTIVE')
93 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILER_MAP" "A" WHERE "A"."USER_ID"='ALEX.CAYLES
S@GMACIO' AND "A"."RETAILER_ID"=:B1 AND "A"."MANAGED_BY"='Y'))
95 - access("RETAILER_HIERARCHY"."PARENT_RETAILER_ID"="A"."RETAILER_ID")
97 - access("A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."MANAGED_BY"='Y')
103 - filter("SYS_ALIAS_1"."PARENT_RETAILER_ID"=NULL)
104 - filter("A"."MANAGED_BY"='Y')
105 - access("A"."RETAILER_ID"=:B1 AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO')
106 - filter(UPPER("SYS_ALIAS_1"."STATUS")='ACTIVE' AND EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILE
R_MAP" "C" WHERE "C"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "C"."RETAILER_ID"=:B1 AND "C"
."MANAGED_BY"='Y'))
107 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILER_MAP" "A","RETAILER" "B", (SELECT /*+ */ "
SYS_ALIAS_1"."RETAILER_ID" "$nso_col_1" FROM "RETAILER_HIERARCHY" "SYS_ALIAS_1" WHERE
"SYS_ALIAS_1"."PARENT_RETAILER_ID"=NULL) "VW_NSO_3" WHERE "A"."RETAILER_ID"="VW_NSO_3"
."$nso_col_1" AND "B"."RETAILER_ID"="A"."RETAILER_ID" AND UPPER("B"."STATUS")='ACTIVE'
AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."RETAILER_ID"=:B1 AND "A"."MANAGED_BY
"='Y'))
108 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILER_MAP" "A","RETAILER" "B", (SELECT /*+ */ "
SYS_ALIAS_1"."RETAILER_ID" "$nso_col_1" FROM "RETAILER_HIERARCHY" "SYS_ALIAS_1" WHERE
"SYS_ALIAS_1"."PARENT_RETAILER_ID"=NULL) "VW_NSO_3" WHERE "A"."RETAILER_ID"="VW_NSO_3"
."$nso_col_1" AND "B"."RETAILER_ID"="A"."RETAILER_ID" AND UPPER("B"."STATUS")='ACTIVE'
AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."RETAILER_ID"=:B1 AND "A"."MANAGED_BY
"='Y'))
110 - access("SYS_ALIAS_1"."RETAILER_ID"="SYS_ALIAS_2"."RETAILER_ID")
115 - filter("A"."MANAGED_BY"='Y')
116 - access("A"."RETAILER_ID"=:B1 AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO')
117 - filter(UPPER("B"."STATUS")='ACTIVE')
118 - access("B"."RETAILER_ID"="A"."RETAILER_ID")
119 - filter("A"."RETAILER_ID"="VW_NSO_3"."$nso_col_1")
120 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILER_MAP" "A" WHERE "A"."USER_ID"='ALEX.CAYLES
S@GMACIO' AND "A"."RETAILER_ID"=:B1 AND "A"."MANAGED_BY"='Y'))
122 - access("RETAILER_HIERARCHY"."PARENT_RETAILER_ID"="A"."RETAILER_ID")
124 - access("A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."MANAGED_BY"='Y')
130 - filter("SYS_ALIAS_1"."PARENT_RETAILER_ID"=NULL)
131 - filter("A"."MANAGED_BY"='Y')
132 - access("A"."RETAILER_ID"=:B1 AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO')
136 - access("SYS_ALIAS_1"."RETAILER_ID"="SYS_ALIAS_2"."RETAILER_ID")
141 - filter("A"."MANAGED_BY"='Y')
142 - access("A"."RETAILER_ID"=:B1 AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO')
143 - filter(UPPER("B"."STATUS")='ACTIVE')
144 - access("B"."RETAILER_ID"="A"."RETAILER_ID")
145 - filter("A"."RETAILER_ID"="VW_NSO_3"."$nso_col_1")
146 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILER_MAP" "A" WHERE "A"."USER_ID"='ALEX.CAYLES
S@GMACIO' AND "A"."RETAILER_ID"=:B1 AND "A"."MANAGED_BY"='Y'))
148 - access("RETAILER_HIERARCHY"."PARENT_RETAILER_ID"="A"."RETAILER_ID")
150 - access("A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."MANAGED_BY"='Y')
156 - filter("SYS_ALIAS_1"."PARENT_RETAILER_ID"=NULL)
157 - filter("A"."MANAGED_BY"='Y')
158 - access("A"."RETAILER_ID"=:B1 AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO')
159 - filter("C"."MANAGED_BY"='Y')
160 - access("C"."RETAILER_ID"=:B1 AND "C"."USER_ID"='ALEX.CAYLESS@GMACIO')
Edited by: user13345267 on Jul 19, 2010 1:56 AMPlease find formatted sql.
SELECT path AS retailer_id,
logical_physical_flg,
parent_retailer_id,
Upper(retailer_nm),
max_level
FROM (SELECT a.retailer_id,
logical_physical_flg,
NULL AS parent_retailer_id,
b.retailer_nm,
a.retailer_id path,
( LEVEL + 2 ) AS max_level
FROM retailer b,
user_retailer_map a
WHERE user_id = 'ALEX.CAYLESS@GMACIO'
AND b.retailer_id = a.retailer_id
AND b.status = 'ACTIVE'
AND a.retailer_id NOT IN (SELECT DISTINCT retailer_id
FROM retailer_hierarchy
START WITH parent_retailer_id IN (
SELECT
retailer_id
FROM
user_retailer_map a
WHERE
user_id = 'ALEX.CAYLESS@GMACIO'
AND managed_by = 'Y')
CONNECT BY PRIOR
retailer_id = parent_retailer_id)
AND managed_by = 'Y'
UNION
SELECT a.retailer_id,
logical_physical_flg,
Replace(Sys_connect_by_path(
Decode(LEVEL, 1, a.parent_retailer_id), '~')
'~')
parent_retailer_id,
retailer_nm,
Lpad(' ', 2 * LEVEL - 1)
||Sys_connect_by_path(b.retailer_id, '/') AS path,
LEVEL + 3 AS max_level
FROM retailer b,
retailer_hierarchy a
WHERE b.retailer_id = a.retailer_id
AND Upper(b.status) = 'ACTIVE'
AND EXISTS (SELECT retailer_id
FROM user_retailer_map c
WHERE user_id = 'ALEX.CAYLESS@GMACIO'
AND b.retailer_id = c.retailer_id
AND managed_by = 'Y')
START WITH parent_retailer_id IN (SELECT a.retailer_id
FROM retailer b,
user_retailer_map a
WHERE user_id = 'ALEX.CAYLESS@GMACIO'
AND
b.retailer_id = a.retailer_id
AND Upper(b.status) = 'ACTIVE'
AND a.retailer_id NOT IN
(SELECT DISTINCT
retailer_id
FROM retailer_hierarchy
START WITH parent_retailer_id IN
SELECT
retailer_id
FROM
user_retailer_map a
WHERE
user_id = 'ALEX.CAYLESS@GMACIO'
AND managed_by = 'Y')
CONNECT BY PRIOR
retailer_id = parent_retailer_id)
AND managed_by = 'Y')
CONNECT BY PRIOR a.retailer_id = parent_retailer_id)
START WITH parent_retailer_id IS NULL
CONNECT BY PRIOR retailer_id = parent_retailer_id
ORDER SIBLINGS BY RETAILER_NM
Execution Plan
====================================
PLAN_TABLE_OUTPUT
| Id | Operation | Name | Rows | Bytes | Cost |
| 0 | SELECT STATEMENT | | 1352 | 5385K| 2089 |
|* 1 | CONNECT BY WITH FILTERING | | | | |
|* 2 | FILTER | | | | |
| 3 | COUNT | | | | |
| 4 | VIEW | | 1352 | 5385K| 40 |
| 5 | SORT UNIQUE | | 1352 | 84128 | 40 |
| 6 | UNION-ALL | | | | |
|* 7 | HASH JOIN ANTI | | 16 | 1296 | 12 |
|* 8 | HASH JOIN | | 19 | 1406 | 9 |
| 9 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 19 | 570 | 2 |
|* 10 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
|* 11 | TABLE ACCESS FULL | RETAILER | 32 | 1408 | 6 |
| 12 | VIEW | VW_NSO_1 | 3 | 21 | 2 |
|* 13 | CONNECT BY WITH FILTERING | | | | |
| 14 | NESTED LOOPS | | | | |
|* 15 | HASH JOIN | | 58 | 2262 | 5 |
| 16 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 19 | 570 | 2 |
|* 17 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
| 18 | INDEX FAST FULL SCAN | AX_RET_HIER | 1336 | 12024 | 2 |
| 19 | TABLE ACCESS BY USER ROWID | RETAILER_HIERARCHY | | | |
| 20 | NESTED LOOPS | | | | |
| 21 | BUFFER SORT | | 3 | 54 | |
| 22 | CONNECT BY PUMP | | | | |
|* 23 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 3 | 54 | 2 |
|* 24 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|* 25 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|* 26 | FILTER | | | | |
|* 27 | CONNECT BY WITH FILTERING | | | | |
|* 28 | FILTER | | | | |
| 29 | COUNT | | | | |
|* 30 | HASH JOIN | | 1336 | 82832 | 9 |
| 31 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 1336 | 24048 | 2 |
| 32 | TABLE ACCESS FULL | RETAILER | 3188 | 136K| 6 |
| 33 | NESTED LOOPS ANTI | | 1 | 54 | 5 |
| 34 | NESTED LOOPS | | 1 | 47 | 3 |
|* 35 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|* 36 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|* 37 | TABLE ACCESS BY INDEX ROWID | RETAILER | 1 | 17 | 1 |
|* 38 | INDEX UNIQUE SCAN | XPKRETAILER | 100 | | |
|* 39 | VIEW | VW_NSO_3 | 3 | 21 | |
|* 40 | CONNECT BY WITH FILTERING | | | | |
| 41 | NESTED LOOPS | | | | |
|* 42 | HASH JOIN | | 58 | 2262 | 5 |
| 43 | TABLE ACCESS BY INDEX ROWID| USER_RETAILER_MAP | 19 | 570 | 2 |
|* 44 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
| 45 | INDEX FAST FULL SCAN | AX_RET_HIER | 1336 | 12024 | 2 |
| 46 | TABLE ACCESS BY USER ROWID | RETAILER_HIERARCHY | | | |
| 47 | NESTED LOOPS | | | | |
| 48 | BUFFER SORT | | 3 | 54 | |
| 49 | CONNECT BY PUMP | | | | |
|* 50 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 3 | 54 | 2 |
|* 51 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|* 52 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
| 53 | HASH JOIN | | | | |
| 54 | CONNECT BY PUMP | | | | |
| 55 | COUNT | | | | |
|* 56 | HASH JOIN | | 1336 | 82832 | 9 |
| 57 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 1336 | 24048 | 2 |
| 58 | TABLE ACCESS FULL | RETAILER | 3188 | 136K| 6 |
| 59 | NESTED LOOPS ANTI | | 1 | 54 | 5 |
| 60 | NESTED LOOPS | | 1 | 47 | 3 |
|* 61 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|* 62 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|* 63 | TABLE ACCESS BY INDEX ROWID | RETAILER | 1 | 17 | 1 |
|* 64 | INDEX UNIQUE SCAN | XPKRETAILER | 100 | | |
|* 65 | VIEW | VW_NSO_3 | 3 | 21 | |
|* 66 | CONNECT BY WITH FILTERING | | | | |
| 67 | NESTED LOOPS | | | | |
|* 68 | HASH JOIN | | 58 | 2262 | 5 |
| 69 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 19 | 570 | 2 |
|* 70 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
| 71 | INDEX FAST FULL SCAN | AX_RET_HIER | 1336 | 12024 | 2 |
| 72 | TABLE ACCESS BY USER ROWID | RETAILER_HIERARCHY | | | |
| 73 | NESTED LOOPS | | | | |
| 74 | BUFFER SORT | | 3 | 54 | |
| 75 | CONNECT BY PUMP | | | | |
|* 76 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 3 | 54 | 2 |
|* 77 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|* 78 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|* 79 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|* 80 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
| 81 | HASH JOIN | | | | |
| 82 | CONNECT BY PUMP | | | | |
| 83 | COUNT | | | | |
| 84 | VIEW | | 1352 | 5385K| 40 |
| 85 | SORT UNIQUE | | 1352 | 84128 | 40 |
| 86 | UNION-ALL | | | | |
|* 87 | HASH JOIN ANTI | | 16 | 1296 | 12 |
|* 88 | HASH JOIN | | 19 | 1406 | 9 |
| 89 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 19 | 570 | 2 |
|* 90 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
|* 91 | TABLE ACCESS FULL | RETAILER | 32 | 1408 | 6 |
| 92 | VIEW | VW_NSO_1 | 3 | 21 | 2 |
|* 93 | CONNECT BY WITH FILTERING | | | | |
| 94 | NESTED LOOPS | | | | |
|* 95 | HASH JOIN | | 58 | 2262 | 5 |
| 96 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 19 | 570 | 2 |
|* 97 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
| 98 | INDEX FAST FULL SCAN | AX_RET_HIER | 1336 | 12024 | 2 |
| 99 | TABLE ACCESS BY USER ROWID | RETAILER_HIERARCHY | | | |
| 100 | NESTED LOOPS | | | | |
| 101 | BUFFER SORT | | 3 | 54 | |
| 102 | CONNECT BY PUMP | | | | |
|*103 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 3 | 54 | 2 |
|*104 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|*105 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|*106 | FILTER | | | | |
|*107 | CONNECT BY WITH FILTERING | | | | |
|*108 | FILTER | | | | |
| 109 | COUNT | | | | |
|*110 | HASH JOIN | | 1336 | 82832 | 9 |
| 111 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 1336 | 24048 | 2 |
| 112 | TABLE ACCESS FULL | RETAILER | 3188 | 136K| 6 |
| 113 | NESTED LOOPS ANTI | | 1 | 54 | 5 |
| 114 | NESTED LOOPS | | 1 | 47 | 3 |
|*115 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|*116 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|*117 | TABLE ACCESS BY INDEX ROWID | RETAILER | 1 | 17 | 1 |
|*118 | INDEX UNIQUE SCAN | XPKRETAILER | 100 | | |
|*119 | VIEW | VW_NSO_3 | 3 | 21 | |
|*120 | CONNECT BY WITH FILTERING | | | | |
| 121 | NESTED LOOPS | | | | |
|*122 | HASH JOIN | | 58 | 2262 | 5 |
| 123 | TABLE ACCESS BY INDEX ROWID| USER_RETAILER_MAP | 19 | 570 | 2 |
|*124 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
| 125 | INDEX FAST FULL SCAN | AX_RET_HIER | 1336 | 12024 | 2 |
| 126 | TABLE ACCESS BY USER ROWID | RETAILER_HIERARCHY | | | |
| 127 | NESTED LOOPS | | | | |
| 128 | BUFFER SORT | | 3 | 54 | |
| 129 | CONNECT BY PUMP | | | | |
|*130 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 3 | 54 | 2 |
|*131 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|*132 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
| 133 | HASH JOIN | | | | |
| 134 | CONNECT BY PUMP | | | | |
| 135 | COUNT | | | | |
|*136 | HASH JOIN | | 1336 | 82832 | 9 |
| 137 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 1336 | 24048 | 2 |
| 138 | TABLE ACCESS FULL | RETAILER | 3188 | 136K| 6 |
| 139 | NESTED LOOPS ANTI | | 1 | 54 | 5 |
| 140 | NESTED LOOPS | | 1 | 47 | 3 |
|*141 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|*142 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|*143 | TABLE ACCESS BY INDEX ROWID | RETAILER | 1 | 17 | 1 |
|*144 | INDEX UNIQUE SCAN | XPKRETAILER | 100 | | |
|*145 | VIEW | VW_NSO_3 | 3 | 21 | |
|*146 | CONNECT BY WITH FILTERING | | | | |
| 147 | NESTED LOOPS | | | | |
|*148 | HASH JOIN | | 58 | 2262 | 5 |
| 149 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 19 | 570 | 2 |
|*150 | INDEX RANGE SCAN | INDX_USERID_MNGBY | 19 | | 1 |
| 151 | INDEX FAST FULL SCAN | AX_RET_HIER | 1336 | 12024 | 2 |
| 152 | TABLE ACCESS BY USER ROWID | RETAILER_HIERARCHY | | | |
| 153 | NESTED LOOPS | | | | |
| 154 | BUFFER SORT | | 3 | 54 | |
| 155 | CONNECT BY PUMP | | | | |
|*156 | INDEX FAST FULL SCAN | XPKRETAILER_HIERARCHY | 3 | 54 | 2 |
|*157 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|*158 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
|*159 | TABLE ACCESS BY INDEX ROWID | USER_RETAILER_MAP | 1 | 30 | 2 |
|*160 | INDEX UNIQUE SCAN | XPKGSS_USER_RETAILER_MAP | 45770 | | 1 |
Predicate Information (identified by operation id):
1 - filter("from$_subquery$_001"."PARENT_RETAILER_ID" IS NULL)
2 - filter("from$_subquery$_001"."PARENT_RETAILER_ID" IS NULL)
7 - access("A"."RETAILER_ID"="VW_NSO_1"."$nso_col_1")
8 - access("B"."RETAILER_ID"="A"."RETAILER_ID")
10 - access("A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."MANAGED_BY"='Y')
11 - filter("B"."STATUS"='ACTIVE')
13 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILER_MAP" "A" WHERE "A"."USER_ID"='ALEX.CAYLES
S@GMACIO' AND "A"."RETAILER_ID"=:B1 AND "A"."MANAGED_BY"='Y'))
15 - access("RETAILER_HIERARCHY"."PARENT_RETAILER_ID"="A"."RETAILER_ID")
17 - access("A"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "A"."MANAGED_BY"='Y')
23 - filter("SYS_ALIAS_1"."PARENT_RETAILER_ID"=NULL)
24 - filter("A"."MANAGED_BY"='Y')
25 - access("A"."RETAILER_ID"=:B1 AND "A"."USER_ID"='ALEX.CAYLESS@GMACIO')
26 - filter(UPPER("SYS_ALIAS_1"."STATUS")='ACTIVE' AND EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILE
R_MAP" "C" WHERE "C"."USER_ID"='ALEX.CAYLESS@GMACIO' AND "C"."RETAILER_ID"=:B1 AND "C"
."MANAGED_BY"='Y'))
27 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_RETAILER_MAP" "A","RETAILER" "B", (SELECT /*+ */ "
SYS_ALIAS_1"."RETAILER_ID" "$nso_col_1" FROM "RETAILER_HIERARCHY" "SYS_ALIAS_1" WHERE
"SYS_ALIAS_1"."PARENT_RETAILER_ID"=NULL) "VW_NSO_3" WHERE "A"."RETAILER_ID"="VW_NSO_3"
."$nso_col_1" AND "B"."RETAILER_ID"="A"."RETAILER_ID" AND UPPER("B"."STATUS")='ACTIVE' -
What step need to take to tune the below query?
select LPAD(' ', 2*LEVEL-1)||SYS_CONNECT_BY_PATH(USER_ID,'/') AS USER_ID, user_nm USER_NM,LEVEL AS MAX_LEVEL from ( SELECT /*+ use_hash(GS_USER)*/ DISTINCT null PARENT_USER_ID, USER_ID user_id, user_nm FROM GSUSER WHERE GC_DEALER_USER_FLG='G' AND USER_ID IN ( SELECT B.PARENT_USER_ID FROM USER_HIERARCHY B,USER_COUNTRY_MAP A WHERE B.USER_ID=A.USER_ID AND A.COUNTRY_CD = ?)AND USER_ID NOT IN (SELECT B.USER_ID FROM USER_HIERARCHY B,USER_COUNTRY_MAP A WHERE B.USER_ID=A.USER_ID AND A.COUNTRY_CD = ?)AND ROLE_NM = 'GISU' AND UPPER(STATUS) = 'ACTIVE' UNION SELECT /*use_hash(B)*/ NULL as PARENT_USER_ID, B.USER_ID, USER_NM FROM GS_USER B, USER_COUNTRY_MAP A WHERE B.USER_ID=A.USER_ID AND A.COUNTRY_CD =? AND B.GC_DEALER_USER_FLG='G' AND B.ROLE_NM = 'GISU' AND UPPER(B.STATUS) = 'ACTIVE' AND B.USER_ID NOT IN ( SELECT PARENT_USER_ID FROM USER_HIERARCHY) AND B.USER_ID NOT IN ( SELECT USER_ID FROM USER_HIERARCHY) UNION SELECT /*use_hash(B)*/ DISTINCT a.parent_user_id PARENT_USER_ID,a.user_id USER_ID, b.user_nm FROM GS_USER B, USER_HIERARCHY A WHERE B.USER_ID=A.USER_ID AND B.ROLE_NM = 'GISU' AND UPPER(B.STATUS) = 'ACTIVE' AND B.GC_DEALER_USER_FLG ='G' START WITH A.PARENT_USER_ID in ( SELECT distinct a.USER_ID FROM GS_USER a, USER_HIERARCHY b, USER_COUNTRY_MAP c WHERE a.GC_DEALER_USER_FLG='G' AND a.USER_ID = b.parent_user_id AND b.user_id = c.user_id and c.COUNTRY_CD = ? AND a.user_id NOT IN (SELECT B.USER_ID FROM USER_HIERARCHY B,USER_COUNTRY_MAP A WHERE B.USER_ID=A.USER_ID AND A.COUNTRY_CD = c.country_cd ) AND ROLE_NM = 'GISU' AND UPPER(STATUS) = 'ACTIVE' ) CONNECT BY PRIOR A.USER_ID = A.PARENT_USER_ID ) start with parent_user_id is null connect by prior user_id = parent_user_id ORDER SIBLINGS BY UPPER(USER_NM) ASC
Please find below the explain plan for the same and some db parameter details:
NAME TYPE VALUE
filesystemio_options string
object_cache_optimal_size integer 102400
optimizer_dynamic_sampling integer 1
optimizer_features_enable string 9.2.0
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 100
optimizer_max_permutations integer 2000
optimizer_mode string ALL_ROWS
SQL> /
PLAN_TABLE_OUTPUT
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost |
| 0 | SELECT STATEMENT | | 3681 | 373K| | 169 |
|* 1 | CONNECT BY WITH FILTERING | | | | | |
|* 2 | FILTER | | | | | |
| 3 | COUNT | | | | | |
| 4 | VIEW | | 3681 | 373K| | 99 |
| 5 | SORT UNIQUE | | 3681 | 319K| 776K| 99 |
| 6 | UNION-ALL | | | | | |
| 7 | NESTED LOOPS | | 1 | 119 | | 9 |
| 8 | NESTED LOOPS | | 1 | 106 | | 9 |
|* 9 | HASH JOIN ANTI | | 1 | 72 | | 7 |
| 10 | TABLE ACCESS BY INDEX ROWID | GSS_USER | 6 | 330 | | 2 |
|* 11 | INDEX RANGE SCAN | INDX_GSSUSR_FLGROLESTS | 6 | | | 1 |
| 12 | VIEW | VW_NSO_1 | 642 | 10914 | | 4 |
| 13 | NESTED LOOPS | | 642 | 23754 | | 4 |
| 14 | INDEX FAST FULL SCAN | XPKGSS_USER_HIERARCHY | 3679 | 62543 | | 4 |
|* 15 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 20 | | |
| 16 | TABLE ACCESS BY INDEX ROWID | USER_HIERARCHY | 1 | 34 | | 2 |
|* 17 | INDEX RANGE SCAN | GSS_USER_HIER_PARENT_USER_ID | 3 | | | 1 |
|* 18 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 13 | | |
| 19 | NESTED LOOPS ANTI | | 1 | 109 | | 4 |
| 20 | NESTED LOOPS ANTI | | 1 | 92 | | 3 |
| 21 | NESTED LOOPS | | 1 | 75 | | 2 |
| 22 | TABLE ACCESS BY INDEX ROWID | GSS_USER | 6 | 330 | | 2 |
|* 23 | INDEX RANGE SCAN | INDX_GSSUSR_FLGROLESTS | 6 | | | 1 |
|* 24 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 20 | | |
|* 25 | INDEX RANGE SCAN | XPKGSS_USER_HIERARCHY | 3679 | 62543 | | 1 |
|* 26 | INDEX RANGE SCAN | GSS_USER_HIER_PARENT_USER_ID | 3679 | 62543 | | 1 |
|* 27 | FILTER | | | | | |
|* 28 | CONNECT BY WITH FILTERING | | | | | |
|* 29 | FILTER | | | | | |
| 30 | COUNT | | | | | |
|* 31 | HASH JOIN | | 3679 | 319K| | 20 |
| 32 | INDEX FAST FULL SCAN | XPKGSS_USER_HIERARCHY | 3679 | 122K| | 4 |
| 33 | TABLE ACCESS FULL | GSS_USER | 6580 | 353K| | 9 |
| 34 | NESTED LOOPS | | 1 | 94 | | 4 |
| 35 | NESTED LOOPS | | 3 | 222 | | 4 |
|* 36 | TABLE ACCESS BY INDEX ROWID| GSS_USER | 1 | 40 | | 2 |
|* 37 | INDEX UNIQUE SCAN | XPKGSS_USER | 6580 | | | 1 |
| 38 | TABLE ACCESS BY INDEX ROWID| USER_HIERARCHY | 3 | 102 | | 2 |
|* 39 | INDEX RANGE SCAN | GSS_USER_HIER_PARENT_USER_ID | 3 | | | 1 |
|* 40 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 20 | | |
| 41 | NESTED LOOPS | | 1 | 37 | | 2 |
|* 42 | INDEX RANGE SCAN | XPKGSS_USER_HIERARCHY | 1 | 17 | | 2 |
|* 43 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 20 | | |
| 44 | HASH JOIN | | | | | |
| 45 | CONNECT BY PUMP | | | | | |
| 46 | COUNT | | | | | |
|* 47 | HASH JOIN | | 3679 | 319K| | 20 |
| 48 | INDEX FAST FULL SCAN | XPKGSS_USER_HIERARCHY | 3679 | 122K| | 4 |
| 49 | TABLE ACCESS FULL | GSS_USER | 6580 | 353K| | 9 |
| 50 | NESTED LOOPS | | 1 | 94 | | 4 |
| 51 | NESTED LOOPS | | 3 | 222 | | 4 |
|* 52 | TABLE ACCESS BY INDEX ROWID | GSS_USER | 1 | 40 | | 2 |
|* 53 | INDEX UNIQUE SCAN | XPKGSS_USER | 6580 | | | 1 |
| 54 | TABLE ACCESS BY INDEX ROWID | USER_HIERARCHY | 3 | 102 | | 2 |
|* 55 | INDEX RANGE SCAN | GSS_USER_HIER_PARENT_USER_ID | 3 | | | 1 |
|* 56 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 20 | | |
| 57 | NESTED LOOPS | | 1 | 37 | | 2 |
|* 58 | INDEX RANGE SCAN | XPKGSS_USER_HIERARCHY | 1 | 17 | | 2 |
|* 59 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 20 | | |
| 60 | HASH JOIN | | | | | |
| 61 | CONNECT BY PUMP | | | | | |
| 62 | COUNT | | | | | |
| 63 | VIEW | | 3681 | 373K| | 99 |
| 64 | SORT UNIQUE | | 3681 | 319K| 776K| 99 |
| 65 | UNION-ALL | | | | | |
| 66 | NESTED LOOPS | | 1 | 119 | | 9 |
| 67 | NESTED LOOPS | | 1 | 106 | | 9 |
|* 68 | HASH JOIN ANTI | | 1 | 72 | | 7 |
| 69 | TABLE ACCESS BY INDEX ROWID | GSS_USER | 6 | 330 | | 2 |
|* 70 | INDEX RANGE SCAN | INDX_GSSUSR_FLGROLESTS | 6 | | | 1 |
| 71 | VIEW | VW_NSO_1 | 642 | 10914 | | 4 |
| 72 | NESTED LOOPS | | 642 | 23754 | | 4 |
| 73 | INDEX FAST FULL SCAN | XPKGSS_USER_HIERARCHY | 3679 | 62543 | | 4 |
|* 74 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 20 | | |
| 75 | TABLE ACCESS BY INDEX ROWID | USER_HIERARCHY | 1 | 34 | | 2 |
|* 76 | INDEX RANGE SCAN | GSS_USER_HIER_PARENT_USER_ID | 3 | | | 1 |
|* 77 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 13 | | |
| 78 | NESTED LOOPS ANTI | | 1 | 109 | | 4 |
| 79 | NESTED LOOPS ANTI | | 1 | 92 | | 3 |
| 80 | NESTED LOOPS | | 1 | 75 | | 2 |
| 81 | TABLE ACCESS BY INDEX ROWID | GSS_USER | 6 | 330 | | 2 |
|* 82 | INDEX RANGE SCAN | INDX_GSSUSR_FLGROLESTS | 6 | | | 1 |
|* 83 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 20 | | |
|* 84 | INDEX RANGE SCAN | XPKGSS_USER_HIERARCHY | 3679 | 62543 | | 1 |
|* 85 | INDEX RANGE SCAN | GSS_USER_HIER_PARENT_USER_ID | 3679 | 62543 | | 1 |
|* 86 | FILTER | | | | | |
|* 87 | CONNECT BY WITH FILTERING | | | | | |
|* 88 | FILTER | | | | | |
| 89 | COUNT | | | | | |
|* 90 | HASH JOIN | | 3679 | 319K| | 20 |
| 91 | INDEX FAST FULL SCAN | XPKGSS_USER_HIERARCHY | 3679 | 122K| | 4 |
| 92 | TABLE ACCESS FULL | GSS_USER | 6580 | 353K| | 9 |
| 93 | NESTED LOOPS | | 1 | 94 | | 4 |
| 94 | NESTED LOOPS | | 3 | 222 | | 4 |
|* 95 | TABLE ACCESS BY INDEX ROWID| GSS_USER | 1 | 40 | | 2 |
|* 96 | INDEX UNIQUE SCAN | XPKGSS_USER | 6580 | | | 1 |
| 97 | TABLE ACCESS BY INDEX ROWID| USER_HIERARCHY | 3 | 102 | | 2 |
|* 98 | INDEX RANGE SCAN | GSS_USER_HIER_PARENT_USER_ID | 3 | | | 1 |
|* 99 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 20 | | |
| 100 | NESTED LOOPS | | 1 | 37 | | 2 |
|*101 | INDEX RANGE SCAN | XPKGSS_USER_HIERARCHY | 1 | 17 | | 2 |
|*102 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 20 | | |
| 103 | HASH JOIN | | | | | |
| 104 | CONNECT BY PUMP | | | | | |
| 105 | COUNT | | | | | |
|*106 | HASH JOIN | | 3679 | 319K| | 20 |
| 107 | INDEX FAST FULL SCAN | XPKGSS_USER_HIERARCHY | 3679 | 122K| | 4 |
| 108 | TABLE ACCESS FULL | GSS_USER | 6580 | 353K| | 9 |
| 109 | NESTED LOOPS | | 1 | 94 | | 4 |
| 110 | NESTED LOOPS | | 3 | 222 | | 4 |
|*111 | TABLE ACCESS BY INDEX ROWID | GSS_USER | 1 | 40 | | 2 |
|*112 | INDEX UNIQUE SCAN | XPKGSS_USER | 6580 | | | 1 |
| 113 | TABLE ACCESS BY INDEX ROWID | USER_HIERARCHY | 3 | 102 | | 2 |
|*114 | INDEX RANGE SCAN | GSS_USER_HIER_PARENT_USER_ID | 3 | | | 1 |
|*115 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 20 | | |
| 116 | NESTED LOOPS | | 1 | 37 | | 2 |
|*117 | INDEX RANGE SCAN | XPKGSS_USER_HIERARCHY | 1 | 17 | | 2 |
|*118 | INDEX UNIQUE SCAN | SYS_C005426 | 1 | 20 | | |
Predicate Information (identified by operation id):
1 - filter("from$_subquery$_001"."PARENT_USER_ID" IS NULL)
2 - filter("from$_subquery$_001"."PARENT_USER_ID" IS NULL)
9 - access("GSS_USER"."USER_ID"="VW_NSO_1"."$nso_col_1")
11 - access("GSS_USER"."GMAC_DEALER_USER_FLG"='G' AND "GSS_USER"."ROLE_NM"='GISU' AND "GSS_USER"."STATUS"='
ACTIVE')
15 - access("A"."COUNTRY_CD"='AU' AND "B"."USER_ID"="A"."USER_ID")
17 - access("GSS_USER"."USER_ID"="B"."PARENT_USER_ID")
18 - access("A"."COUNTRY_CD"='AU' AND "B"."USER_ID"="A"."USER_ID")
23 - access("B"."GMAC_DEALER_USER_FLG"='G' AND "B"."ROLE_NM"='GISU' AND "B"."STATUS"='ACTIVE')
24 - access("A"."COUNTRY_CD"='AU' AND "B"."USER_ID"="A"."USER_ID")
25 - access("B"."USER_ID"="USER_HIERARCHY"."USER_ID")
26 - access("B"."USER_ID"="USER_HIERARCHY"."PARENT_USER_ID")
27 - filter("B"."ROLE_NM"='GISU' AND "B"."STATUS"='ACTIVE' AND "B"."GMAC_DEALER_USER_FLG"='G')
28 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_COUNTRY_MAP" "SYS_ALIAS_2","USER_HIERARCHY" "B","GSS_USER"
"SYS_ALIAS_1" WHERE "SYS_ALIAS_1"."USER_ID"=:B1 AND "SYS_ALIAS_1"."GMAC_DEALER_USER_FLG"='G' AN
D "SYS_ALIAS_1"."ROLE_NM"='GISU' AND "SYS_ALIAS_1"."STATUS"='ACTIVE' AND "SYS_ALIAS_1"."USER_ID
"="B"."PARENT_USER_ID" AND "B"."USER_ID"="SYS_ALIAS_2"."USER_ID" AND "SYS_ALIAS_2"."COUNTRY_CD"
='AU' AND NOT EXISTS (SELECT /*+ */ 0 FROM "USER_COUNTRY_MAP" "A","USER_HIERARCHY" "B" WHERE "
B"."USER_ID"=:B2 AND "B"."USER_ID"="A"."USER_ID" AND "A"."COUNTRY_CD"=:B3)))
29 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_COUNTRY_MAP" "SYS_ALIAS_2","USER_HIERARCHY" "B","GSS_USER"
"SYS_ALIAS_1" WHERE "SYS_ALIAS_1"."USER_ID"=:B1 AND "SYS_ALIAS_1"."GMAC_DEALER_USER_FLG"='G' AN
D "SYS_ALIAS_1"."ROLE_NM"='GISU' AND "SYS_ALIAS_1"."STATUS"='ACTIVE' AND "SYS_ALIAS_1"."USER_ID
"="B"."PARENT_USER_ID" AND "B"."USER_ID"="SYS_ALIAS_2"."USER_ID" AND "SYS_ALIAS_2"."COUNTRY_CD"
='AU' AND NOT EXISTS (SELECT /*+ */ 0 FROM "USER_COUNTRY_MAP" "A","USER_HIERARCHY" "B" WHERE "
B"."USER_ID"=:B2 AND "B"."USER_ID"="A"."USER_ID" AND "A"."COUNTRY_CD"=:B3)))
31 - access("B"."USER_ID"="SYS_ALIAS_1"."USER_ID")
36 - filter("SYS_ALIAS_1"."GMAC_DEALER_USER_FLG"='G' AND "SYS_ALIAS_1"."ROLE_NM"='GISU' AND "SYS_ALIAS_1"."
STATUS"='ACTIVE')
37 - access("SYS_ALIAS_1"."USER_ID"=:B1)
39 - access("SYS_ALIAS_1"."USER_ID"="B"."PARENT_USER_ID")
40 - access("SYS_ALIAS_2"."COUNTRY_CD"='AU' AND "B"."USER_ID"="SYS_ALIAS_2"."USER_ID")
filter( NOT EXISTS (SELECT /*+ */ 0 FROM "USER_COUNTRY_MAP" "A","USER_HIERARCHY" "B" WHERE "B"."USER_I
D"=:B1 AND "B"."USER_ID"="A"."USER_ID" AND "A"."COUNTRY_CD"=:B2))
42 - access("B"."USER_ID"=:B1)
43 - access("A"."COUNTRY_CD"=:B1 AND "B"."USER_ID"="A"."USER_ID")
47 - access("B"."USER_ID"="SYS_ALIAS_1"."USER_ID")
52 - filter("SYS_ALIAS_1"."GMAC_DEALER_USER_FLG"='G' AND "SYS_ALIAS_1"."ROLE_NM"='GISU' AND "SYS_ALIAS_1"."
STATUS"='ACTIVE')
53 - access("SYS_ALIAS_1"."USER_ID"=:B1)
55 - access("SYS_ALIAS_1"."USER_ID"="B"."PARENT_USER_ID")
56 - access("SYS_ALIAS_2"."COUNTRY_CD"='AU' AND "B"."USER_ID"="SYS_ALIAS_2"."USER_ID")
filter( NOT EXISTS (SELECT /*+ */ 0 FROM "USER_COUNTRY_MAP" "A","USER_HIERARCHY" "B" WHERE "B"."USER_I
D"=:B1 AND "B"."USER_ID"="A"."USER_ID" AND "A"."COUNTRY_CD"=:B2))
58 - access("B"."USER_ID"=:B1)
59 - access("A"."COUNTRY_CD"=:B1 AND "B"."USER_ID"="A"."USER_ID")
68 - access("GSS_USER"."USER_ID"="VW_NSO_1"."$nso_col_1")
70 - access("GSS_USER"."GMAC_DEALER_USER_FLG"='G' AND "GSS_USER"."ROLE_NM"='GISU' AND "GSS_USER"."STATUS"='
ACTIVE')
74 - access("A"."COUNTRY_CD"='AU' AND "B"."USER_ID"="A"."USER_ID")
76 - access("GSS_USER"."USER_ID"="B"."PARENT_USER_ID")
77 - access("A"."COUNTRY_CD"='AU' AND "B"."USER_ID"="A"."USER_ID")
82 - access("B"."GMAC_DEALER_USER_FLG"='G' AND "B"."ROLE_NM"='GISU' AND "B"."STATUS"='ACTIVE')
83 - access("A"."COUNTRY_CD"='AU' AND "B"."USER_ID"="A"."USER_ID")
84 - access("B"."USER_ID"="USER_HIERARCHY"."USER_ID")
85 - access("B"."USER_ID"="USER_HIERARCHY"."PARENT_USER_ID")
86 - filter("B"."ROLE_NM"='GISU' AND "B"."STATUS"='ACTIVE' AND "B"."GMAC_DEALER_USER_FLG"='G')
87 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_COUNTRY_MAP" "SYS_ALIAS_2","USER_HIERARCHY" "B","GSS_USER"
"SYS_ALIAS_1" WHERE "SYS_ALIAS_1"."USER_ID"=:B1 AND "SYS_ALIAS_1"."GMAC_DEALER_USER_FLG"='G' AN
D "SYS_ALIAS_1"."ROLE_NM"='GISU' AND "SYS_ALIAS_1"."STATUS"='ACTIVE' AND "SYS_ALIAS_1"."USER_ID
"="B"."PARENT_USER_ID" AND "B"."USER_ID"="SYS_ALIAS_2"."USER_ID" AND "SYS_ALIAS_2"."COUNTRY_CD"
='AU' AND NOT EXISTS (SELECT /*+ */ 0 FROM "USER_COUNTRY_MAP" "A","USER_HIERARCHY" "B" WHERE "
B"."USER_ID"=:B2 AND "B"."USER_ID"="A"."USER_ID" AND "A"."COUNTRY_CD"=:B3)))
88 - filter( EXISTS (SELECT /*+ */ 0 FROM "USER_COUNTRY_MAP" "SYS_ALIAS_2","USER_HIERARCHY" "B","GSS_USER"
"SYS_ALIAS_1" WHERE "SYS_ALIAS_1"."USER_ID"=:B1 AND "SYS_ALIAS_1"."GMAC_DEALER_USER_FLG"='G' AN
D "SYS_ALIAS_1"."ROLE_NM"='GISU' AND "SYS_ALIAS_1"."STATUS"='ACTIVE' AND "SYS_ALIAS_1"."USER_ID
"="B"."PARENT_USER_ID" AND "B"."USER_ID"="SYS_ALIAS_2"."USER_ID" AND "SYS_ALIAS_2"."COUNTRY_CD"
='AU' AND NOT EXISTS (SELECT /*+ */ 0 FROM "USER_COUNTRY_MAP" "A","USER_HIERARCHY" "B" WHERE "
B"."USER_ID"=:B2 AND "B"."USER_ID"="A"."USER_ID" AND "A"."COUNTRY_CD"=:B3)))
90 - access("B"."USER_ID"="SYS_ALIAS_1"."USER_ID")
95 - filter("SYS_ALIAS_1"."GMAC_DEALER_USER_FLG"='G' AND "SYS_ALIAS_1"."ROLE_NM"='GISU' AND "SYS_ALIAS_1"."
STATUS"='ACTIVE')
96 - access("SYS_ALIAS_1"."USER_ID"=:B1)
98 - access("SYS_ALIAS_1"."USER_ID"="B"."PARENT_USER_ID")
99 - access("SYS_ALIAS_2"."COUNTRY_CD"='AU' AND "B"."USER_ID"="SYS_ALIAS_2"."USER_ID")
filter( NOT EXISTS (SELECT /*+ */ 0 FROM "USER_COUNTRY_MAP" "A","USER_HIERARCHY" "B" WHERE "B"."USER_I
D"=:B1 AND "B"."USER_ID"="A"."USER_ID" AND "A"."COUNTRY_CD"=:B2))
101 - access("B"."USER_ID"=:B1)
102 - access("A"."COUNTRY_CD"=:B1 AND "B"."USER_ID"="A"."USER_ID")
106 - access("B"."USER_ID"="SYS_ALIAS_1"."USER_ID")
111 - filter("SYS_ALIAS_1"."GMAC_DEALER_USER_FLG"='G' AND "SYS_ALIAS_1"."ROLE_NM"='GISU' AND "SYS_ALIAS_1"."
STATUS"='ACTIVE')
112 - access("SYS_ALIAS_1"."USER_ID"=:B1)
114 - access("SYS_ALIAS_1"."USER_ID"="B"."PARENT_USER_ID")
115 - access("SYS_ALIAS_2"."COUNTRY_CD"='AU' AND "B"."USER_ID"="SYS_ALIAS_2"."USER_ID")
filter( NOT EXISTS (SELECT /*+ */ 0 FROM "USER_COUNTRY_MAP" "A","USER_HIERARCHY" "B" WHERE "B"."USER_I
D"=:B1 AND "B"."USER_ID"="A"."USER_ID" AND "A"."COUNTRY_CD"=:B2))
117 - access("B"."USER_ID"=:B1)
118 - access("A"."COUNTRY_CD"=:B1 AND "B"."USER_ID"="A"."USER_ID")
Note: cpu costing is off
218 rows selected.
Please give me some tips or clue ,so that I can reduce the more cost for the same.
Thanks in adv. -
How to tune the below query?is taking 1min 15 sec to process 16,34,300 reco
SELECT
user_id,
ispeak,
round(sum(DURATION_seconds*convert_duration(pulseunit,ratingunit))/decode(ispeak,0,max(offpeakpulse),max(peakpulse))),
round(sum(download_bytes*convert_bytes(pulseunit,ratingunit))/decode(ispeak,0,max(offpeakpulse),max(peakpulse))),
round(sum(upload_bytes*convert_bytes(pulseunit,ratingunit))/decode(ispeak,0,max(offpeakpulse),max(peakpulse))),
max(packageid),
max(peakrate),
max(offpeakrate),
max(bstplantype),
max(freevalue),
max(peakpulse),
max(offpeakpulse),
max(pulseunit),
max(ratingunit)
FROM aaa_sessions a,subscriber_rate_tab srt
where
a.user_id=srt.externalid
group by user_id,packageid,ispeak
having
trunc(min(start_time_utc)) between min(srt.activedt) and min(srt.inactivedt)
and
trunc(max(end_time_utc)) between min(srt.activedt) and min(srt.inactivedt);Do you have multiprocessor CPU .
if the value is greater then 3 then you can try with parallel processing
select value from v$parameter where name ='cpu_count' ;Try this :-
ALTER SESSION ENABLE PARALLEL QUERY
SELECT /*+ parallel (a) */
user_id,
ispeak,
round(sum(DURATION_seconds*convert_duration(pulseunit,ratingunit))/decode(ispeak,0,max(offpeakpulse),max(peakpulse))),
max(ratingunit),
round(sum(download_bytes*convert_bytes(pulseunit,ratingunit))/decode(ispeak,0,max(offpeakpulse),max(peakpulse))),
max(ratingunit),
round(sum(upload_bytes*convert_bytes(pulseunit,ratingunit))/decode(ispeak,0,max(offpeakpulse),max(peakpulse))),
max(packageid),
max(peakrate),
max(offpeakrate),
max(bstplantype),
max(freevalue),
max(peakpulse),
max(offpeakpulse),
max(pulseunit),
max(ratingunit),
min(start_time_utc) ,
max(end_time_utc),
min(srt.activedt),
min(srt.inactivedt)
FROM aaa_sessions a,subscriber_rate_tab srt
where
a.user_id=srt.externalid(+)
group by user_id,packageid,ispeak
having
trunc(min(start_time_utc)) between min(srt.activedt) and min(srt.inactivedt)
and
trunc(max(end_time_utc)) between min(srt.activedt) and min(srt.inactivedt)Cheers
Nawneet
Edited by: Nawneet_Aswal on Aug 2, 2010 4:48 AM -
Please help me what other way i can tune this select query..
Hello Guru,
I have a select query which retrieve data from 10 tables and around 4 tables having 2-4 Lac record and rest are having 80,000 - 1 Lac record.
It is taking around 7-8 seconds to fetch 55000 record.
I was strictly told by the client that i should not use HINTS in my query. My query is below. Please help me what other way i can tune this select query..
select
CT.CUST_ID
,CT.ROMANISED_SURNAME
,CT.SURNAME
,CT.ROMANISED_GIVEN_NAME
,CT.GIVEN_NAME
,CT.ROMANISED_MIDDLE_NAME
,CT.MIDDLE_NAME
,CT.ROMANISED_NAME_SUFFIX
,CT.NAME_SUFFIX
,CT.ROMANISED_TITLE
,CT.TITLE
,CT.ROMANISED_NAME_INITIALS
,CT.NAME_INITIALS
,CT.NAME_TEXT
,CT.CUST_JRNY_ID
,RK.REMARK_TYPE
,RK.REMARK_ID+CT.CUST_ID as REMARK_ID
,RK.REMARK_STATUS
,RK.REMARK_TEXT
,RK.HOST_ONLY_IND
,RK.SUPERVISORY_IND
,RK.CUST_COMM_IND
,RK.REMARK_SEQ
,RK.REMARK_CODE
,RK.DEFAULT_CUST_REL_IND
,RK.DEFAULT_FLIGHT_SEG_REL_IND
,RK.IATA_CODE
,RK.ICAO_CODE
,CJ.RECORD_LOCATOR "SITA_RECORD_LOCATOR"
,Cjv.Record_Locator "ORIGINATOR_RECORD_LOCATOR"
,FS.TRAVELLING_GROUP_CODE
,CG.GROUP_NAME
FROM FLIGHT_LEG FL
,CUST_FLIGHT_LEG CFL
,CUST CT
,CUST_REMARK CTR
,REMARK RK
,FLIGHT_SEG_FLIGHT_LEG FSFL
,FLIGHT_SEG FS
,CUST_JRNY CJ
,CUST_JRNY_VERSION CJV
,CUST_GROUP CG
WHERE FL.OPR_FLIGHT_NUMBER = 1--I_OPR_FLIGHT_NUMBER
and FL.HISTORY_VERSION_NUMBER = 0
and FL.DEPARTURE_STATION_CODE = 'DEL'--I_DEPARTURE_STATION_CODE
and FL.DEPARTURE_DATETIME = TO_DATE('10-DEC-2012 18.45.00', 'DD-MON-YYYY HH24.MI.SS')
and FL.OPR_SERVICE_PROVIDER_CODE= 'AI'--i_opr_service_provider_code
and FL.OPR_FLIGHT_SUFFIX = 'A'--NVL(I_OPR_FLIGHT_SUFFIX, FL.OPR_FLIGHT_SUFFIX)
AND FL.FLIGHT_LEG_ID = CFL.FLIGHT_LEG_ID
AND CFL.CUST_ID = CT.CUST_ID
AND FL.FLIGHT_LEG_ID=FSFL.FLIGHT_LEG_ID
AND FSFL.FLIGHT_SEG_ID=FS.FLIGHT_SEG_ID
AND CT.CUST_ID = CTR.CUST_ID(+)
AND CTR.REMARK_ID = RK.REMARK_ID(+)
AND FL.CUST_JRNY_ID = CJ.CUST_JRNY_ID
and CJ.CUST_JRNY_ID = CJV.CUST_JRNY_ID
AND CG.CUST_JRNY_ID(+) = CT.CUST_JRNY_ID
AND CFL.HISTORY_VERSION_NUMBER = 0
AND CT.HISTORY_VERSION_NUMBER = 0
AND NVL(CTR.HISTORY_VERSION_NUMBER,0) = 0
AND NVL(RK.HISTORY_VERSION_NUMBER,0) = 0
AND FS.HISTORY_VERSION_NUMBER = 0
AND FSFL.HISTORY_VERSION_NUMBER = 0
-- AND CJ.HISTORY_VERSION_NUMBER = 0
and CJV.VERSION_NUMBER = 0 --- Need to check
AND NVL(CG.HISTORY_VERSION_NUMBER,0) = 0
order by CT.CUST_JRNY_ID,CT.CUST_ID;
The Tables having record:
select COUNT(*) from FLIGHT_LEG -----241756
select COUNT(*) from CUST_FLIGHT_LEG---632585
select COUNT(*) from CUST---240015
select COUNT(*) from CUST_REMARK---73724
select COUNT(*) from REMARK---73654
select COUNT(*) from FLIGHT_SEG_FLIGHT_LEG---241789
select COUNT(*) from FLIGHT_SEG----260004
select COUNT(*) from CUST_JRNY----74288
select COUNT(*) from CUST_JRNY_VERSION----74477
select COUNT(*) from CUST_GROUP----55819
Thanks,
HP..Plan hash value: 3771714931
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | Pstart| Pstop |
| 0 | SELECT STATEMENT | | 10239 | 2949K| | 7515 (1)| 00:01:31 | | |
| 1 | SORT ORDER BY | | 10239 | 2949K| 3160K| 7515 (1)| 00:01:31 | | |
|* 2 | HASH JOIN | | 10239 | 2949K| | 6864 (1)| 00:01:23 | | |
| 3 | PARTITION HASH ALL | | 73687 | 1079K| | 417 (1)| 00:00:06 | 1 | 512 |
|* 4 | TABLE ACCESS FULL | CUST_JRNY_VERSION | 73687 | 1079K| | 417 (1)| 00:00:06 | 1 | 512 |
|* 5 | HASH JOIN | | 10239 | 2799K| | 6445 (1)| 00:01:18 | | |
| 6 | PARTITION HASH ALL | | 73654 | 863K| | 178 (1)| 00:00:03 | 1 | 512 |
| 7 | TABLE ACCESS FULL | CUST_JRNY | 73654 | 863K| | 178 (1)| 00:00:03 | 1 | 512 |
|* 8 | FILTER | | | | | | | | |
|* 9 | HASH JOIN RIGHT OUTER | | 10239 | 2679K| | 6267 (1)| 00:01:16 | | |
| 10 | PARTITION HASH ALL | | 55315 | 756K| | 137 (1)| 00:00:02 | 1 | 512 |
| 11 | TABLE ACCESS FULL | CUST_GROUP | 55315 | 756K| | 137 (1)| 00:00:02 | 1 | 512 |
|* 12 | FILTER | | | | | | | | |
|* 13 | HASH JOIN OUTER | | 10240 | 2540K| 2056K| 6129 (1)| 00:01:14 | | |
|* 14 | FILTER | | | | | | | | |
|* 15 | HASH JOIN RIGHT OUTER | | 10242 | 1930K| | 5531 (1)| 00:01:07 | | |
| 16 | INDEX FAST FULL SCAN | CUST_REMARK_PK | 73677 | 935K| | 190 (0)| 00:00:03 | | |
|* 17 | HASH JOIN | | 10257 | 1802K| | 5339 (1)| 00:01:05 | | |
|* 18 | HASH JOIN | | 10257 | 701K| | 3516 (1)| 00:00:43 | | |
|* 19 | HASH JOIN | | 3963 | 220K| | 2476 (1)| 00:00:30 | | |
|* 20 | HASH JOIN | | 3963 | 181K| | 1300 (1)| 00:00:16 | | |
| 21 | PARTITION HASH ALL | | 3963 | 131K| | 728 (1)| 00:00:09 | 1 | 512 |
|* 22 | TABLE ACCESS FULL | FLIGHT_LEG | 3963 | 131K| | 728 (1)| 00:00:09 | 1 | 512 |
|* 23 | INDEX FAST FULL SCAN| FLIGHT_SEG_FLIGHT_LEG_PK | 240K| 3059K| | 571 (1)| 00:00:07 | | |
| 24 | PARTITION HASH ALL | | 259K| 2531K| | 1175 (1)| 00:00:15 | 1 | 512 |
|* 25 | TABLE ACCESS FULL | FLIGHT_SEG | 259K| 2531K| | 1175 (1)| 00:00:15 | 1 | 512 |
| 26 | PARTITION HASH ALL | | 631K| 8011K| | 1037 (1)| 00:00:13 | 1 | 512 |
|* 27 | TABLE ACCESS FULL | CUST_FLIGHT_LEG | 631K| 8011K| | 1037 (1)| 00:00:13 | 1 | 512 |
| 28 | PARTITION HASH ALL | | 239K| 25M| | 1822 (1)| 00:00:22 | 1 | 512 |
|* 29 | TABLE ACCESS FULL | CUST | 239K| 25M| | 1822 (1)| 00:00:22 | 1 | 512 |
| 30 | PARTITION HASH ALL | | 73623 | 4385K| | 243 (1)| 00:00:03 | 1 | 512 |
| 31 | TABLE ACCESS FULL | REMARK | 73623 | 4385K| | 243 (1)| 00:00:03 | 1 | 512 |
Predicate Information (identified by operation id):
2 - access("CJ"."CUST_JRNY_ID"="CJV"."CUST_JRNY_ID")
4 - filter("CJV"."VERSION_NUMBER"=0)
5 - access("FL"."CUST_JRNY_ID"="CJ"."CUST_JRNY_ID")
8 - filter(NVL("CG"."HISTORY_VERSION_NUMBER",0)=0)
9 - access("CG"."CUST_JRNY_ID"(+)="CT"."CUST_JRNY_ID")
12 - filter(NVL("RK"."HISTORY_VERSION_NUMBER",0)=0)
13 - access("CTR"."REMARK_ID"="RK"."REMARK_ID"(+))
14 - filter(NVL("CTR"."HISTORY_VERSION_NUMBER",0)=0)
15 - access("CT"."CUST_ID"="CTR"."CUST_ID"(+))
17 - access("CFL"."CUST_ID"="CT"."CUST_ID")
18 - access("FL"."FLIGHT_LEG_ID"="CFL"."FLIGHT_LEG_ID")
19 - access("FSFL"."FLIGHT_SEG_ID"="FS"."FLIGHT_SEG_ID")
20 - access("FL"."FLIGHT_LEG_ID"="FSFL"."FLIGHT_LEG_ID")
22 - filter("FL"."DEPARTURE_STATION_CODE"='DEL' AND "FL"."DEPARTURE_DATETIME"=TO_DATE(' 2012-12-10 18:45:00', 'syyyy-mm-dd
hh24:mi:ss') AND "FL"."OPR_SERVICE_PROVIDER_CODE"='AI' AND "FL"."OPR_FLIGHT_NUMBER"=1 AND "FL"."OPR_FLIGHT_SUFFIX"='A' AND
"FL"."HISTORY_VERSION_NUMBER"=0)
23 - filter("FSFL"."HISTORY_VERSION_NUMBER"=0)
25 - filter("FS"."HISTORY_VERSION_NUMBER"=0)
27 - filter("CFL"."HISTORY_VERSION_NUMBER"=0)
29 - filter("CT"."HISTORY_VERSION_NUMBER"=0) -
How can I replace the cursor in the below query?
I have this below query which calls a stored procedure that takes only 1 item's attributes at a time. But because of performance problems we are
required to remove the cursor. How can I replace the below cursor logic with set operations or CTE? Please advice.
DECLARE db_cursor_ava CURSOR
FOR
SELECT t.[agent-id],
t.[start-date],
t.[end-date],
t.[monitor-days],
t.[monitor-start],
t.[monitor-end],
t.[timezone-offset]
FROM @tmpAgentPeriodTimeRange t
OPEN db_cursor_ava
FETCH NEXT FROM db_cursor_ava INTO @agentID_ava,
@stDateTime_ava,
@endDateTime_ava,
@monDays_ava,
@monSt_ava,
@monEnd_ava,
@offset_ava
WHILE @@FETCH_STATUS = 0
BEGIN
DELETE
FROM @tmpMonitorPeriod
DELETE
FROM @tmpFinalResult
SET @runID = 1
IF(@endDateTime_ava>DATEADD(MI,@offset_ava, GETUTCDATE()))
BEGIN
SET @endDateTime_ava=DATEADD(MI,@offset_ava, GETUTCDATE())
END
INSERT INTO @tmpMonitorPeriod
EXEC core.usp_GetMonitoringPeriod
@startDate = @stDateTime_ava,
@endDate = @endDateTime_ava,
@monitoringDays = @monDays_ava,
@monitoringStart = @monSt_ava,
@monitoringEnd = @monEnd_ava
SELECT @maxID = MAX(tm.id)
FROM @tmpMonitorPeriod tm
FETCH NEXT FROM db_cursor_ava INTO @agentID_ava,
@stDateTime_ava,
@endDateTime_ava,
@monDays_ava,
@monSt_ava,
@monEnd_ava,
@offset_ava
END
CLOSE db_cursor_ava
DEALLOCATE db_cursor_ava
mayooran99You've been down this path before - and the response is exactly the same.
how to replace cursor logic
And I'll suggest that you post the entire code - since you repeatedly delete 2 table variables but only populate one. The setting of @maxID also seems to have no purpose. And perhaps the issue here isn't the cursor but the general approach. Who knows
- but it appears you may have prematurely assumed that the cursor is the problem. -
I am getting "Invalid Identifier" while running the below query
Iam getting the error "Invalid Identifier, c_rank" while running the below query. Please help.
select a.*, b.pog_description pog_description, b.start_date,
row_number() over(partition by b.pog_description order by b.start_date) c_rank
from temp_codi_dept_35 a, pog_master_msi b, pog_skus_msi c
where a.sku = c.pog_sku
and b.pog_id = c.pog_id
and b.pog_dept = c.pog_dept
and b.pog_number = c.pog_number
and b.pog_level = c.pog_level
and a.sku = 10263477
and c_rank = 1;>
Iam getting the error "Invalid Identifier, c_rank" while running the below query. Please help.
select a.*, b.pog_description pog_description, b.start_date,
row_number() over(partition by b.pog_description order by b.start_date) c_rank
from temp_codi_dept_35 a, pog_master_msi b, pog_skus_msi c
where a.sku = c.pog_sku
and b.pog_id = c.pog_id
and b.pog_dept = c.pog_dept
and b.pog_number = c.pog_number
and b.pog_level = c.pog_level
and a.sku = 10263477
and c_rank = 1;
>
You can't use 'c_rank' in the where clause because it doesn't exist; you are computing it in the SELECT clause.
Remove the last condition and wrap your query in another one to select by 'c_rank'. -
How to use outer join condition in my below query.
Hi All,
How to use outer join condition in my below query.
In the table APPS_JP.GEDIS_OFFER_HEADER goh I have more records
in the table APPS_JP.GEDIS_ORDER_BUILDS gob I have less number of records.
I want all the records from APPS_JP.GEDIS_OFFER_HEADER goh
including other conditions.
I have tried goh.OFFER_NO=gob.OFFER_NO(+) but same result.
[code]SELECT GOH.ORIG_SYSTEM,
gsp.USER_NAME,
goh.ORDER_NO,
goh.OMEGA_ORDER_NUMBER,
goh.ORDER_TYPE,
gc.CUSTOMER_ID,
gc.OMEGA_CUSTOMER_NUMBER,
CASE WHEN gc.PRIVATE = 'N' THEN gc.CUSTOMER_NAME ELSE '' END
AS COMPANY_NAME,
goh.ORDER_STATUS,
goh.TOTAL_SELLING_PRICE,
goh.TOTAL_MARGIN,
ga1.ADDRESS1
|| ','
|| ga1.ADDRESS2
|| ','
|| ga1.ADDRESS3
|| ','
|| ga1.POSTAL_CODE
|| ','
|| ga1.CITY
AS SHIPPING_ADDRESS,
ga2.ADDRESS1
|| ','
|| ga2.ADDRESS2
|| ','
|| ga2.ADDRESS3
|| ','
|| ga2.POSTAL_CODE
|| ','
|| ga2.CITY
AS BILLING_ADDRESS,
ga.ADDRESS_ID,
gol.DESCRIPTION,
APPS_JP.TZ.to_local_date (goh.OFFER_DATE, goh.OFFER_DATE_UTC)
AS OFFER_DATE,
gc.LEVEL_8,
goh.NO_OF_BUILDS,
gob.SFDC_ID,
goh.PURCHASE_ORDER_NO AS PO,
gc1.CUSTOMER_NAME AS END_USAGE,
gol.LOB,
goh.TOTAL_MARGIN_PCT,
goh.TOTAL_DISCOUNT,
goh.TOTAL_DISCOUNT_PCT
FROM APPS_JP.GEDIS_OFFER_HEADER goh,
APPS_JP.GEDIS_ORDER_BUILDS gob,
APPS_JP.GEDIS_ORDER_LINES gol,
APPS_JP.GEDIS_OFFER_RELATED_CUSTOMER gorc,
APPS_JP.GEDIS_OFFER_RELATED_CUSTOMER ship,
APPS_JP.GEDIS_OFFER_RELATED_CUSTOMER bill,
APPS_JP.GEDIS_CUSTOMER gc,
APPS_JP.GEDIS_CUSTOMER gc1,
APPS_JP.GEDIS_CONTACT gct,
APPS_JP.GEDIS_ADDRESS ga,
APPS_JP.GEDIS_ADDRESS_NORM ga1,
APPS_JP.GEDIS_ADDRESS_NORM ga2,
(SELECT DISTINCT SALESPERSON_ID, USER_NAME
FROM APPS_JP.GEDIS_SALESPERSON
WHERE SALESPERSON_ID IN
(SELECT TO_NUMBER (COLUMN_VALUE) AS SALESPERSON_ID
FROM TABLE (APPS_GLOBAL.SplitString ('337309'))))
gsp
WHERE goh.ORDER_NO <> 0
AND goh.OFFER_NO <> 0
AND goh.OFFER_NO=gol.OFFER_NO
AND gol.BUILD_NO = 1
AND gol.LINE_NO = 1
AND goh.OFFER_NO=gob.OFFER_NO
AND gob.BUILD_NO = 1
AND goh.OFFER_NO = gorc.OFFER_NO
AND gct.CONTACT_ID = gorc.CONTACT_ID
AND ga.CUSTOMER_ID = gc.CUSTOMER_ID
AND ga.PRIMARY = 'Y'
AND goh.LEAD_SALESPERSON=gsp.SALESPERSON_ID
AND goh.OFFER_NO = ship.OFFER_NO
AND ship.RELATION_TYPE = 'SHIP'
AND ga1.ADDRESS_ID = ship.ADDRESS_ID
AND ga1.CUSTOMER_ID = gc1.CUSTOMER_ID
AND goh.OFFER_NO = bill.OFFER_NO
AND bill.RELATION_TYPE = 'BILL'
AND ga2.ADDRESS_ID = bill.ADDRESS_ID
AND goh.OFFER_DATE BETWEEN APPS_JP.TZ.LOCAL_TO_DB_DATE (
SYSDATE - 30
AND APPS_JP.TZ.LOCAL_TO_DB_DATE (SYSDATE)
AND gorc.RELATION_TYPE = 'BASE'
AND gorc.CUSTOMER_ID = gc.CUSTOMER_ID
AND goh.SALES_CHANNEL = gc.SALES_CHANNEL
AND gc.SALES_CHANNEL = 'SMB'
AND goh.LEAD_SALESPERSON IN (goh.CREATED_BY, goh.LEAD_SALESPERSON)
ORDER BY goh.OFFER_NO;[/code]
Please help me how to use this outer join condition.
Thanks in advance.Hi,
If you want all the rows from goh, then you don't want any conditions like goh.OFFER_NO <> 0.
Make all the joins to goh outer joins, and make all conditions that apply to any tables joined to goh (or to tables joined to them) part of the join condition, like this:
FROM APPS_JP.GEDIS_OFFER_HEADER goh
LEFT OUTER JOIN APPS_JP.GEDIS_ORDER_BUILDS gob ON gob.OFFER_NO = goh.OFFER_NO
AND gob.BUILD_NO = 1
LEFT OUTER JOIN APPS_JP.GEDIS_ORDER_LINES gol ON gol.OFFER_NO = goh.OFFER_NO
AND gol.BUILD_NO = 1
AND gol.LINE_NO = 1
LEFT OUTER JOIN APPS_JP.GEDIS_OFFER_RELATED_CUSTOMER
gorc ...
I hope this answers your question.
If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all the tables involved, and the results you want from that data.
Simplify the problem as much as possible. For example, do you really need all those tables to show what the problem is? Of course, you need them in tyour real query, but if you understand a solution that only involves 4 or 5 tables, you'll know how to apply it to any number of tables.
Explain, using specific examples, how you get those results from that data.Always say what version of Oracle you're using (e.g. 11.2.0.2.0).
See the forum FAQ https://forums.oracle.com/message/9362002#9362002 -
How to execute the output of the below query automatically
Hi All,
I want to execute the output of the below query automatically, instead of manually copying it and execute.
select 'alter database ['+name+'] set recovery simple' from master.sys.databases where database_id > 4 and state_desc = 'online'
Please provide me a script to do this.
ThanK
KateEXEC sp_MSforeachdb N'ALTER DATABASE [?] SET recovery simple';--- This will set the recovery model for all the system database.The query provided by Vikash16, meets my requirement. Thank you.
-
How to group by below query?
Hi All,
I have below query,
SELECT username,firstname,lastname,country
FROM emp e1
WHERE EXISTS (
SELECT 1
FROM emp
WHERE e1.lastname = firstname
AND e1.firstname) = lastname )
OR EXISTS (
SELECT 1
FROM emp
WHERE lastname = e1.lastname
AND firstname) = e1.firstname )
and the result of the query is
USERNAME, FIRSTNAME, LASTNAME, COUNTRY
1, b6, a6, CH
2, a6, b6, CH
3, a1, b1, CH
4, b1, a1, CH
5, a2, b2, CH
6, a2, b2, CH
7, b1, a1, CH
8, b1, a1, CH
9, b2, a2, CH
10, b2, a2, CH
now i have to group all the firstname and lastname which are haviing values
1) a1,b1 and b1,a1
2) a2,b2 and b2,a2
3) a6,b6 and b6,a6
Can you please help me in this?
Thanks in advance.
Edited by: user9258447 on Jul 27, 2010 6:16 AMWelcome to the forum!
select least (first_name, last_name)
, greatest (first_name, last_name)
, ctry
from test
group by least (first_name, last_name)
, greatest (first_name, last_name)
, ctryas in
SQL> with test as
2 (
3 select 1 username, 'b6' first_name, 'a6' last_name, 'CH' ctry from dual union all
4 select 2 username, 'a6' first_name, 'b6' last_name, 'CH' ctry from dual union all
5 select 3 username, 'a1' first_name, 'b1' last_name, 'CH' ctry from dual union all
6 select 4 username, 'b1' first_name, 'a1' last_name, 'CH' ctry from dual union all
7 select 5 username, 'a2' first_name, 'b2' last_name, 'CH' ctry from dual union all
8 select 6 username, 'a2' first_name, 'b2' last_name, 'CH' ctry from dual union all
9 select 7 username, 'b1' first_name, 'a1' last_name, 'CH' ctry from dual union all
10 select 8 username, 'b1' first_name, 'a1' last_name, 'CH' ctry from dual union all
11 select 9 username, 'b2' first_name, 'a2' last_name, 'CH' ctry from dual union all
12 select 1 username0, 'b2' first_name, 'a2' last_name, 'CH' ctry from dual
13 )
14 select least (first_name, last_name)
15 , greatest (first_name, last_name)
16 , ctry
17 from test
18 group by least (first_name, last_name)
19 , greatest (first_name, last_name)
20 , ctry
21 /
LE GR CT
a1 b1 CH
a2 b2 CH
a6 b6 CH -
how to add docentry with some num.?
can you solve below query
Declare @a as Numeric
SET @a=14900000;
SELECT (@a+($[@MAINTDCHEAD.DocEntry])as 'series no'Hi,
Yes possible.
Try this:
Declare @a as INT
SET @a=14900000;
SELECT (@a+($[ORDR.DocEntry]))
Thanks & Regards,
Nagarajan -
How i can add document nu in below query
i want to add one field in below query
field is bkpf-xblnr
i want document number after d_text.
here d_text = 'Payment for'
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'D_TEXT'.
tab_out-value = d_text.
MODIFY tab_out INDEX sy-tabix.
please help
thanks in advanced.hi help yar i m totaly new for this
i m pasting whole code here just see yar and where u changing please hight light that things
thanks yar
PROGRAM zfisp0001.
*& Subroutine pool ZFISP0001 *
*& Author: Rakesh Rao on 01.04.05 *
*& Modified by: Rakesh Rao on 15.07.2005 *
*& Description: This subroutine pool is called from Check and Payment *
*& Advice SAPScripts *
TABLES: itcsy.
TYPES: BEGIN OF t_itcsy.
INCLUDE STRUCTURE itcsy.
TYPES: END OF t_itcsy.
DATA: tab_in TYPE STANDARD TABLE OF t_itcsy WITH NON-UNIQUE
DEFAULT KEY INITIAL SIZE 0.
DATA: tab_out TYPE STANDARD TABLE OF t_itcsy WITH NON-UNIQUE
DEFAULT KEY INITIAL SIZE 0.
DATA: d_count(3) VALUE 0,
d_netamt_tot TYPE p DECIMALS 2,
d_tdsamt_tot TYPE p DECIMALS 2,
d_grossamt_tot TYPE p DECIMALS 2,
d_tdsamt TYPE p DECIMALS 2.
DATA flag.
DATA: bschl LIKE bseg-bschl.
DATA: shkzg LIKE bseg-shkzg.
clear: d_count,d_netamt_tot.
*& Form ZPAYMENT
text
--> p1 text
<-- p2 text
FORM zpayment TABLES tab_in STRUCTURE itcsy
tab_out STRUCTURE itcsy.
tables : bsak.
TYPES: imis_type_c20(20) TYPE c,
imis_type_c10(10) TYPE c.
DATA: l_intern TYPE imis_type_c20.
DATA: e_intern TYPE imis_type_c10.
DATA: i_extern TYPE imis_type_c10.
DATA: d_belnr(10),
D_VBLNR(10),
d_bukrs TYPE bseg-bukrs,
d_gjahr TYPE bseg-gjahr,
d_gjahr1 TYPE bseg-gjahr, " 15.07.2005 Rakesh
d_buzei TYPE bseg-buzei,
d_augbl TYPE bseg-augbl,
d_umskz TYPE bseg-umskz,
d_bschl TYPE bseg-bschl,
d_bktxt TYPE bkpf-bktxt,
d_budat(10),
d_rebzg TYPE bseg-rebzg,
D_SHKZG TYPE REGUP-SHKZG,
d_swnes TYPE regud-swnes,
d_netamt TYPE p DECIMALS 2,
d_tdsamt TYPE p DECIMALS 2,
d_discamt TYPE regud-wskto,
d_gross TYPE regud-wrbtr.
DATA: BEGIN OF t_bkpf,
bukrs TYPE bkpf-bukrs,
belnr TYPE bkpf-belnr,
gjahr TYPE bkpf-gjahr,
budat TYPE bkpf-budat,
bktxt TYPE bkpf-bktxt,
xblnr TYPE bkpf-xblnr,
END OF t_bkpf.
DATA: BEGIN OF t_bseg,
bukrs TYPE bseg-bukrs,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
buzei TYPE bseg-buzei,
umskz TYPE bseg-umskz,
bschl TYPE bseg-bschl,
qbshb TYPE bseg-qbshb,
augbl TYPE bseg-augbl,
rebzg TYPE bseg-rebzg,
rebzj TYPE bseg-rebzj,
sgtxt TYPE bseg-sgtxt,
xref1 TYPE bseg-xref1,
ebeln TYPE bseg-ebeln,
shkzg type bseg-shkzg,
END OF t_bseg.
DATA: num VALUE ' ',
d_result VALUE ' '.
DATA: d_symbol VALUE '/',
d_text(11) VALUE 'Payment for'.
DATA: d_belnr1 LIKE bseg-belnr.
DATA: wa_payrq TYPE payrq. " 15.07.2005 Rakesh
18.05.2006
data : wa_belnr like bseg-belnr,wa_augbl like bseg-augbl.
18.05.2006
06.09.2006
data : d_other type p decimals 2.
Read incoming data
*break-point.
*zpayment.
CLEAR: d_belnr,d_bukrs,d_gjahr,d_result.
clear d_tdsamt.
Company code
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-BUKRS'.
d_bukrs = tab_in-value.
Document number
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-BELNR'.
wa_belnr = d_belnr(10) = tab_in-value(10).
Posting Key
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-BSCHL'.
d_bschl = tab_in-value.
Special G/L Indicator
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-UMSKZ'.
d_umskz = tab_in-value.
Fiscal year
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-GJAHR'.
d_gjahr = tab_in-value.
<-- 15.07.2005 Rakesh
Fiscal year1 - For Payment request case
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUD-GJAHR'.
d_gjahr1 = tab_in-value.
15.07.2005 Rakesh -->
Document item
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-BUZEI'.
d_buzei = tab_in-value.
Discount amount, if any
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUD-WSKTO'.
REPLACE ALL OCCURRENCES OF ',' IN tab_in-value WITH ' '.
d_discamt = tab_in-value.
Gross Amount
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUD-WRBTR'.
REPLACE ALL OCCURRENCES OF ',' IN tab_in-value WITH ' '.
d_gross = tab_in-value.
Gross Amount
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUD-WNETT'.
REPLACE ALL OCCURRENCES OF ',' IN tab_in-value WITH ' '.
d_netamt = tab_in-value.
Clearing document 18.05.2006
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-VBLNR'.
wa_augbl = tab_in-value.
DEBIT/CREDIT INDICATOR
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-SHKZG'.
d_SHKZG = tab_in-value(1).
IF d_netamt < 0 AND D_SHKZG = 'S'.
D_NETAMT = D_NETAMT * '-1'.
ENDIF.
Check document no. is clearing document than reset wnett = 0.
18.05.2006
select single * from bsak where augbl = wa_augbl
and bukrs = d_bukrs and gjahr = d_gjahr1.
if sy-subrc = 0 and wa_belnr = wa_augbl.
d_netamt = 0.
endif.
18.05.2006
Check if Down payment request
IF d_bschl = '39'.
This line item is not considered
d_result = 'X'.
ELSE.
Check if Down payment
IF d_bschl = '29'
and wa_augbl = wa_belnr. "18.05.2006
IF d_umskz EQ 'A'
OR d_umskz EQ 'B'
OR d_umskz EQ 'I'
OR d_umskz EQ 'M'
OR d_umskz EQ 'D'.
Put Document Number of the Payment Document value to 'd_belnr'
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-VBLNR'.
d_belnr = tab_in-value.
ENDIF.
ENDIF.
<--15.07.2005 Rakesh
Check if Payment request exists in 'payrq'
CLEAR wa_payrq.
Convert 'd_belnr' to 10 digits,if required
CLEAR: l_intern,e_intern.
CALL 'CONVERSION_EXIT_ALPHA_INPUT' ID 'INPUT' FIELD d_belnr
ID 'OUTPUT' FIELD l_intern.
e_intern = l_intern+10.
d_belnr1 = d_belnr.
CLEAR d_belnr.
d_belnr = e_intern.
SELECT SINGLE keyno augbl FROM payrq
INTO CORRESPONDING FIELDS OF wa_payrq
WHERE keyno = d_belnr.
IF sy-subrc = 0. " Yes
Take clearing document which is the required accounting document
d_belnr = wa_payrq-augbl.
Convert 'd_belnr' to 10 digits,if required
CLEAR: l_intern,e_intern.
CALL 'CONVERSION_EXIT_ALPHA_INPUT' ID 'INPUT' FIELD d_belnr
ID 'OUTPUT' FIELD l_intern.
e_intern = l_intern+10.
CLEAR d_belnr.
d_belnr = e_intern.
Assign 'd_gjahr1' to 'd_gjahr' as this is relevant here.
d_gjahr = d_gjahr1. " 15.07.2005 Rakesh
Get BSEG data
SELECT SINGLE bukrs belnr gjahr buzei augbl rebzg rebzj
sgtxt qbshb umskz bschl xref1 ebeln
FROM bseg INTO CORRESPONDING FIELDS OF t_bseg
WHERE bukrs EQ d_bukrs
AND belnr EQ d_belnr
AND gjahr EQ d_gjahr
AND buzei EQ d_buzei " not relevant
AND bschl EQ '25' " Posting key - Outgoing payment
AND koart EQ 'S' " G/L accounts
AND shkzg EQ 'S'. " Debit
ELSE. " No
For all other cases, we use this final logic, even though we have
taken d_belnr value from accounting doc no., in some earlier cases.
Put document number of the payment document(vblnr) value to 'd_belnr',
IF d_bschl = '29'
and wa_augbl <> wa_belnr. "18.05.2006
IF d_umskz EQ 'A'
OR d_umskz EQ 'B'
OR d_umskz EQ 'I'
OR d_umskz EQ 'M'
OR d_umskz EQ 'D'.
else.
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-VBLNR'.
d_belnr = tab_in-value.
endif.
else.
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-VBLNR'.
d_belnr = tab_in-value.
endif.
-->15.07.2005
Convert 'd_belnr' to 10 digits,if required
CLEAR: l_intern,e_intern.
CALL 'CONVERSION_EXIT_ALPHA_INPUT' ID 'INPUT' FIELD d_belnr
ID 'OUTPUT' FIELD l_intern.
e_intern = l_intern+10.
CLEAR d_belnr.
d_belnr = e_intern.
Get BSEG data
SELECT SINGLE bukrs belnr gjahr buzei augbl rebzg rebzj
sgtxt qbshb umskz bschl xref1 ebeln shkzg
FROM bseg INTO CORRESPONDING FIELDS OF t_bseg
WHERE bukrs EQ d_bukrs
AND belnr EQ d_belnr
AND gjahr EQ d_gjahr1
"changed by Bharat 15.04.2006 - d_gjahr1 contains payment doc fiscal yea
"r and d_gjahr contains invoice fiscal year
AND buzei EQ d_buzei "amisha 10-10-2005
AND bschl EQ '25' " Posting key - Outgoing payment
AND shkzg EQ 'S' "added by Bharat 17.04.2006
AND ( koart EQ 'K' OR koart EQ 'D').
<--15.07.2005 Rakesh
18.05.2006
in clearing document payment advice not consider TDS amount of
payment document
if wa_belnr <> wa_augbl and d_shkzg = 'S'.
t_bseg-qbshb = t_bseg-qbshb * '-1'.
d_netamt = d_netamt + t_bseg-qbshb.
t_bseg-qbshb = 0.
endif.
18.05.2006
ENDIF.
-->15.07.2005
Get corresponding BKPF data
If Down payment
IF d_bschl = '29'.
IF d_umskz EQ 'A'
OR d_umskz EQ 'B'
OR d_umskz EQ 'I'
OR d_umskz EQ 'M'
OR d_umskz EQ 'D'.
SELECT SINGLE bukrs belnr gjahr budat bktxt xblnr
FROM bkpf INTO CORRESPONDING FIELDS OF t_bkpf
WHERE bukrs EQ d_bukrs
AND belnr EQ d_belnr
AND gjahr EQ d_gjahr1.
"changed by Bharat 15.04.2006 - d_gjahr1 contains payment doc fiscal yea
"r and d_gjahr contains invoice fiscal year
ENDIF.
ELSE.
If Partial payment/On-account payment
IF t_bseg-augbl IS INITIAL.
On-Account case
IF t_bseg-augbl IS INITIAL.
IF t_bseg-rebzg IS INITIAL.
t_bseg-rebzg = t_bseg-belnr. " Payment Document Number
t_bseg-rebzj = t_bseg-gjahr. " Fiscal year
ENDIF.
ENDIF.
SELECT SINGLE bukrs belnr gjahr budat bktxt xblnr
FROM bkpf INTO CORRESPONDING FIELDS OF t_bkpf
WHERE bukrs EQ t_bseg-bukrs
AND belnr EQ t_bseg-rebzg
AND gjahr EQ t_bseg-rebzj.
ELSE.
FULL PAYMENT with Discount
clear d_tdsamt.
Following code added for GSPL by bharat06092006
if d_bukrs eq 'GSPL'.
DATA : V_TEXT(20) TYPE C.
V_TEXT = 'W%'.
SELECT SINGLE wrbtr FROM bseg
INTO d_tdsamt
WHERE bukrs EQ d_bukrs AND
belnr EQ d_belnr1 AND
gjahr EQ d_gjahr AND " Added by bharat on 10-04-2006 fiscal year
bschl EQ '50' AND
KTOSL EQ 'WIT' AND
QSSKZ NOT LIKE V_TEXT.
SELECT single wrbtr FROM bseg
INTO d_other
WHERE bukrs EQ d_bukrs AND
belnr EQ d_belnr1 AND
gjahr EQ d_gjahr AND " Added by bharat on 10-04-2006 fiscal year
bschl EQ '50' AND
KTOSL EQ 'WIT' AND
QSSKZ LIKE V_TEXT.
ELSE.
Added by bharat 06.09.2006
SELECT SINGLE wrbtr
FROM bseg INTO d_tdsamt
WHERE bukrs EQ d_bukrs
AND belnr EQ d_belnr1
AND gjahr EQ d_gjahr
" Added by bharat on 10-04-2006 fiscal year
AND bschl EQ '50' AND KTOSL EQ 'WIT'.
ENDIF.
SELECT SINGLE bukrs belnr gjahr budat bktxt xblnr
FROM bkpf INTO CORRESPONDING FIELDS OF t_bkpf
WHERE bukrs EQ d_bukrs
AND belnr EQ d_belnr
AND gjahr EQ d_gjahr1.
"changed by Bharat 15.04.2006 - d_gjahr1 contains payment doc fiscal yea
"r and d_gjahr contains invoice fiscal year
tab_in-value
*d_tdsamt_tot
ENDIF.
ENDIF.
IF sy-subrc = 0.
Sr. no. for Line items
d_count = d_count + 1.
ELSE.
Else, this line item is not considered
d_result = 'X'.
ENDIF.
ENDIF. " if d_bschl = '39'
Pass the output to the outgoing table 'tab_out', if 'd_result' is not
*set.
IF d_result = ' '.
Line count
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'COUNT'.
tab_out-value = d_count.
MODIFY tab_out INDEX sy-tabix.
Result flag
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'RESULT1'.
tab_out-value = d_result.
MODIFY tab_out INDEX sy-tabix.
Clearing document
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'AUGBL'.
tab_out-value = t_bseg-augbl.
MODIFY tab_out INDEX sy-tabix.
IF d_bschl <> '29'.
On-Account case
IF t_bseg-augbl IS INITIAL.
IF t_bseg-rebzg IS INITIAL.
t_bseg-rebzg = t_bseg-belnr. " Payment Document Number
ENDIF.
ENDIF.
ELSE.
Payment document request
IF NOT t_bseg-ebeln IS INITIAL. " First preference
t_bseg-rebzg = t_bseg-ebeln.
ELSE.
t_bseg-rebzg = d_belnr.
ENDIF.
ENDIF.
Number of the Invoice the Transaction Belongs to
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'REBZG'.
SHIFT t_bseg-rebzg LEFT DELETING LEADING num.
tab_out-value = t_bseg-rebzg.
MODIFY tab_out INDEX sy-tabix.
Document number - check use??
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'BELNR'.
tab_out-value = d_belnr. " check!!
MODIFY tab_out INDEX sy-tabix.
Net amount
d_netamt = d_gross - d_discamt - t_bseg-qbshb.
Gross amount
d_gross = d_netamt + d_tdsamt + t_bseg-qbshb.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'NETAMT'.
tab_out-value = d_netamt.
SHIFT tab_out-value LEFT DELETING LEADING space.
MODIFY tab_out INDEX sy-tabix.
TDS Amount
IF t_bseg-qbshb IS INITIAL.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'TDSAMT'.
tab_out-value = d_tdsamt.
SHIFT tab_out-value LEFT DELETING LEADING space.
MODIFY tab_out INDEX sy-tabix.
Added by bharat 06.09.2006
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'D_OTHER'.
tab_out-value = d_other.
SHIFT tab_out-value LEFT DELETING LEADING space.
MODIFY tab_out INDEX sy-tabix.
Added by bharat 06.09.2006
ELSE.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'TDSAMT'.
tab_out-value = t_bseg-qbshb.
SHIFT tab_out-value LEFT DELETING LEADING space.
MODIFY tab_out INDEX sy-tabix.
ENDIF.
*Calculate Total Net amount & TDS amount which is stored in Global
*memory and accessed later
from 'FORM Z_TOTAL_AMT'
d_netamt_tot = d_netamt_tot + d_netamt.
d_grossamt_tot = d_grossamt_tot + d_gross.
d_tdsamt_tot = d_tdsamt_tot + t_bseg-qbshb + d_tdsamt + d_other.
CLEAR: tab_OUT-value,tab_out-name.
READ TABLE tab_OUT WITH KEY 'NETAMT_TOT'.
tab_out-value = d_netamt_tot.
shift tab_out-value left deleting leading space.
MODIFY tab_out INDEX sy-tabix.
Document Header text
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'BKTXT'.
IF d_bschl = '29'.
tab_out-value = t_bseg-sgtxt. " for down payment request
ELSE.
tab_out-value = t_bkpf-bktxt.
ENDIF.
MODIFY tab_out INDEX sy-tabix.
Reference Document Number - Header
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'XBLNR'.
IF d_bschl = '29'.
tab_out-value = t_bseg-xref1. " for down payment request
ELSE.
tab_out-value = t_bkpf-xblnr.
ENDIF.
MODIFY tab_out INDEX sy-tabix.
Symbol '/'
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'D_SYMBOL'.
tab_out-value = d_symbol.
MODIFY tab_out INDEX sy-tabix.
Text 'Payment for'
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'D_TEXT'.
tab_out-value = d_text.
MODIFY tab_out INDEX sy-tabix.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'D_TEXT'.
tab_out-value = d_text.
tab_out-xblnr = t_bkpf-xblnr.
MODIFY tab_out by bkpf-xblnr INDEX sy-tabix.
Posting date
CLEAR d_budat.
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
EXPORTING
date_internal = t_bkpf-budat
IMPORTING
date_external = d_budat
EXCEPTIONS
date_internal_is_invalid = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'BUDAT'.
tab_out-value = d_budat.
MODIFY tab_out INDEX sy-tabix.
ELSE.
Result flag
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'RESULT1'.
tab_out-value = d_result.
MODIFY tab_out INDEX sy-tabix.
ENDIF.
d_gross = d_netamt + d_tdsamt + t_bseg-qbshb.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'GROSSAMT'.
tab_out-value = d_gross.
SHIFT tab_out-value LEFT DELETING LEADING space.
MODIFY tab_out INDEX sy-tabix.
ENDFORM. " ZPAYMENT
*& Form zamtwords
text - If only 'Net Amount' is required
--> p1 text
<-- p2 text
FORM zamtwords TABLES tab_in STRUCTURE itcsy
tab_out STRUCTURE itcsy.
DATA: d_swnet TYPE regud-swnes, " take character format type
d_swnet1 TYPE bseg-dmbtr.
d_words(160),
d_words1(80),
d_words2(80).
<-- 21.05.2005
DATA: d_words(160),
d_words1(80) TYPE c,
d_words2(80) TYPE c.
DATA: len TYPE i.
<-- 21.05.2005
*zamtwords
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUD-SWNET'.
d_swnet = tab_in-value.
REPLACE ALL OCCURRENCES OF '*' IN d_swnes WITH ' '.
REPLACE ALL OCCURRENCES OF ',' IN d_swnet WITH ' '.
d_swnet1 = d_swnet.
CLEAR d_swnet.
PERFORM z_conv_amt USING d_swnet1 CHANGING d_swnet.
Return 'SWNET1' without commas
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'SWNET1'.
d_swnet = d_swnet1.
tab_out-value = d_swnet.
MODIFY tab_out INDEX sy-tabix.
Amount in Indian currency format
CALL FUNCTION 'Z_SPELL_AMOUNT_INR'
EXPORTING
amount = d_swnet1
IMPORTING
rupees_str = d_words.
Adjust 'd_words' left aligned
SHIFT d_words LEFT DELETING LEADING space.
<-- 21.05.2005
Split 'd_words' into 'd_words1' and 'd_words2'
since 'DEFINE' in SAPScript displays maximum 80 characters
d_words1 = d_words(80).
d_words2 = d_words+80(80).
*CALL FUNCTION 'C147_STRING_SPLIT_AT_POSITION'
EXPORTING
i_string = d_words
i_position = 80
IMPORTING
E_HEAD = d_words1
E_TAIL = d_words2.
len = STRLEN( d_words ).
Only 80 characters can be passed to one SAPScript symbol
Split 'd_words' into 'd_words1' and 'd_words2'
since 'DEFINE' in SAPScript displays maximum 80 characters
Check if string split is required
IF len > 80.
d_words1 = d_words(80). " First 80
d_words2 = d_words+80(80). " Next 80
Introduce an initial space in 'd_words2' if 80th character in
'd_words1' is space, as this space is not considered when 'd_words1'
value is passed to the SAPScript, since we need proper spacing
between 'd_words1' and 'd_words2' in the Cheque layout.
IF d_words1+79(1) = ' '.
SHIFT d_words2 RIGHT BY 1 PLACES.
ENDIF.
ELSE.
d_words1 = d_words.
d_words2 = space.
ENDIF.
21.05.2005 -->
Amount in words1
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'WORDS'.
tab_out-value = d_words1.
MODIFY tab_out INDEX sy-tabix.
Amount in words2
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'WORDS1'.
tab_out-value = d_words2.
MODIFY tab_out INDEX sy-tabix.
ENDFORM. " zamtwords
*& Form z_address
text
--> p1 text
<-- p2 text
FORM z_address TABLES tab_in STRUCTURE itcsy
tab_out STRUCTURE itcsy.
DATA d_bukrs TYPE bseg-bukrs.
DATA: t_t001 TYPE t001,
t_adrc TYPE adrc.
CLEAR: tab_in-value,t_t001,t_adrc.
READ TABLE tab_in WITH KEY 'REGUP-BUKRS'.
d_bukrs = tab_in-value.
CALL FUNCTION 'K_READ_T001'
EXPORTING
i_bukrs = d_bukrs
IMPORTING
e_t001 = t_t001
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
CALL FUNCTION 'RTP_US_DB_ADRC_READ'
EXPORTING
i_address_number = t_t001-adrnr
I_NATION = ' '
I_READ_DB =
IMPORTING
e_adrc = t_adrc
EXCEPTIONS
not_found = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'ADRC-NAME1'.
tab_out-value = t_adrc-name1.
MODIFY tab_out INDEX sy-tabix.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'ADRC-STREET'.
tab_out-value = t_adrc-street.
MODIFY tab_out INDEX sy-tabix.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'ADRC-CITY1'.
tab_out-value = t_adrc-city1.
MODIFY tab_out INDEX sy-tabix.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'ADRC-POST_CODE1'.
tab_out-value = t_adrc-post_code1.
MODIFY tab_out INDEX sy-tabix.
ENDIF.
ENDFORM. " z_address
*& Form z_total_amt
text
--> p1 text
<-- p2 text
FORM z_total_amt TABLES tab_in STRUCTURE itcsy
tab_out STRUCTURE itcsy.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'NETAMT_TOT'.
tab_out-value = d_netamt_tot.
SHIFT tab_out-value LEFT DELETING LEADING space.
MODIFY tab_out INDEX sy-tabix.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'TDSAMT_TOT'.
tab_out-value = d_tdsamt_tot.
SHIFT tab_out-value LEFT DELETING LEADING space.
MODIFY tab_out INDEX sy-tabix.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'GROSSAMT_TOT'.
tab_out-value = d_grossamt_tot.
SHIFT tab_out-value LEFT DELETING LEADING space.
MODIFY tab_out INDEX sy-tabix.
ENDFORM. " z_total_amt
*& Form Z_NET_AMT
text
-->TAB_IN text
-->TAB_OUT text
FORM z_net_amt TABLES tab_in STRUCTURE itcsy
tab_out STRUCTURE itcsy.
TYPES: imis_type_c20(20) TYPE c,
imis_type_c10(10) TYPE c.
DATA: l_intern TYPE imis_type_c20.
DATA: e_intern TYPE imis_type_c10.
DATA: i_extern TYPE imis_type_c10.
DATA: d_belnr(10),
d_bukrs TYPE bseg-bukrs,
d_gjahr TYPE bseg-gjahr,
d_umskz TYPE bseg-umskz,
d_bschl TYPE bseg-bschl,
d_dmbtr1 TYPE bseg-dmbtr,
d_dmbtr(17). "prb16052006
d_dmbtr1 like regud-swnes. "prb16052006
DATA d_amt TYPE char18.
DATA: BEGIN OF t_bseg OCCURS 10,
bukrs TYPE bseg-bukrs,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
buzei TYPE bseg-buzei,
dmbtr TYPE bseg-dmbtr,
wrbtr TYPE bseg-wrbtr,
umskz TYPE bseg-umskz,
bschl TYPE bseg-bschl,
qbshb TYPE bseg-qbshb,
NEbtR TYPE BSEG-nebtr, "prb13052006
END OF t_bseg.
<-- 21.05.2005
DATA: d_words(160),
d_words1(80) TYPE c,
d_words2(80) TYPE c.
DATA: len TYPE i.
<-- 21.05.2005
DATA wa_payrq TYPE payrq. " 15.07.2005 Rakesh
Read incoming data
CLEAR: d_belnr,d_bukrs,d_gjahr.
Company code
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-BUKRS'.
d_bukrs = tab_in-value.
Document number
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-BELNR'.
d_belnr(10) = tab_in-value(10).
Posting Key
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-BSCHL'.
d_bschl = tab_in-value.
Special G/L Indicator
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-UMSKZ'.
d_umskz = tab_in-value.
Fiscal Year
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUD-GJAHR'. " Note
CHECK sy-subrc = 0.
d_gjahr = tab_in-value.
Check if Down payment
IF d_bschl = '29'.
IF d_umskz EQ 'A'
OR d_umskz EQ 'B'
OR d_umskz EQ 'I'
OR d_umskz EQ 'M'
OR d_umskz EQ 'D'.
Put Document Number of the Payment Document value to 'd_belnr'
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-VBLNR'.
d_belnr = tab_in-value.
ENDIF.
ENDIF.
Check if Down payment request
IF d_bschl = '39'.
Put Document Number of the Payment Document value to 'd_belnr'
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-VBLNR'.
d_belnr = tab_in-value.
ENDIF.
<--15.07.2005 Rakesh
Check if Payment request exists in 'payrq'
CLEAR wa_payrq.
Convert 'd_belnr' to 10 digits,if required
CLEAR: l_intern,e_intern.
CALL 'CONVERSION_EXIT_ALPHA_INPUT' ID 'INPUT' FIELD d_belnr
ID 'OUTPUT' FIELD l_intern.
e_intern = l_intern+10.
CLEAR d_belnr.
d_belnr = e_intern.
SELECT SINGLE keyno augbl FROM payrq
INTO CORRESPONDING FIELDS OF wa_payrq
WHERE keyno = d_belnr.
IF sy-subrc = 0. " Yes
Take clearing document which is the required accounting document
d_belnr = wa_payrq-augbl.
Convert 'd_belnr' to 10 digits,if required
CLEAR: l_intern,e_intern.
CALL 'CONVERSION_EXIT_ALPHA_INPUT' ID 'INPUT' FIELD d_belnr
ID 'OUTPUT' FIELD l_intern.
e_intern = l_intern+10.
CLEAR d_belnr.
d_belnr = e_intern.
Get BSEG data
SELECT bukrs belnr gjahr buzei augbl rebzg rebzj sgtxt dmbtr wrbtr
qbshb nebtr
FROM bseg INTO CORRESPONDING FIELDS OF TABLE t_bseg
WHERE bukrs EQ d_bukrs
AND belnr EQ d_belnr
AND gjahr EQ d_gjahr
AND buzei EQ d_buzei
AND bschl EQ '25'
AND koart EQ 'S' " G/L accounts
AND shkzg EQ 'S'. " Debit
ELSE. " No
For all other cases, we use this final logic, even though we have
taken d_belnr value from accounting doc no., in some earlier cases.
Put document number of the payment document(vblnr) value to 'd_belnr',
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUP-VBLNR'.
d_belnr = tab_in-value.
-->15.07.2005
Convert 'd_belnr' to 10 digits.
CLEAR: l_intern,e_intern.
CALL 'CONVERSION_EXIT_ALPHA_INPUT' ID 'INPUT' FIELD d_belnr
ID 'OUTPUT' FIELD l_intern.
e_intern = l_intern+10.
CLEAR d_belnr.
d_belnr = e_intern.
*BSEG - PARTIAL PAYMT/FULL PAYMT WT DISC - Get Total Amount without Bank
*charges
SELECT bukrs belnr gjahr buzei augbl rebzg rebzj sgtxt dmbtr wrbtr
qbshb bschl NEBTR
FROM bseg INTO CORRESPONDING FIELDS OF TABLE t_bseg
WHERE bukrs EQ d_bukrs
AND belnr EQ d_belnr
AND gjahr EQ d_gjahr
AND buzei EQ d_buzei
AND bschl EQ '25'
AND ( koart EQ 'K' OR koart EQ 'D' ).
<--15.07.2005 Rakesh
ENDIF.
-->20.10.2005 By Yogesh.
CLEAR d_dmbtr.
IF sy-subrc = 0.
LOOP AT t_bseg.
d_dmbtr = d_dmbtr + t_bseg-dmbtr - t_bseg-qbshb.
SELECT SINGLE shkzg INTO (shkzg) FROM tbsl
WHERE bschl = t_bseg-bschl.
*BREAK-POINT.
*******prb13052
IF shkzg = 'S'.
d_dmbtr = d_dmbtr + t_bseg-wrbtr - t_bseg-qbshb.
ELSEIF shkzg = 'H'.
d_dmbtr = d_dmbtr - t_bseg-wrbtr - t_bseg-qbshb.
ENDIF.
IF shkzg = 'S'.
d_dmbtr = d_dmbtr + t_bseg-nebtr." - t_bseg-qbshb.
ELSEIF shkzg = 'H'.
if t_bseg-nebtr <> ''.
d_dmbtr = d_dmbtr - t_bseg-nebtr." - t_bseg-qbshb.
else.
d_dmbtr = d_dmbtr - t_bseg-wrbtr." - t_bseg-qbshb.
endif.
ENDIF.
*tables: reguh, payr.
select single * from reguh where zbukr = d_bukrs
and vblnr = d_belnr
and LAUFD+6(4) = d_gjahr.
*select single * from payr where zbukr = d_bukrs
*and vblnr = d_belnr
*and hbkid = reguh-hbkid
*and hktid = reguh-hktid.
*d_dmbtr = payr-rwbtr.
*if d_dmbtr < 0.
*d_dmbtr = d_dmbtr * ( -1 ).
*endif.
CLEAR tab_in-value.
READ TABLE tab_in WITH KEY 'REGUD-SWNES'.
d_DMBTR = tab_in-value.
translate d_dmbtr using '* '.
translate d_dmbtr using ', '.
condense d_dmbtr no-gaps.
d_dmbtr1 = d_dmbtr.
*******prb13052
ENDLOOP.
PERFORM z_conv_amt USING d_dmbtr CHANGING d_amt.
*Pass the Net Amount output to the outgoing table tab_out-name =
*'NETAMT_TOT'.
CLEAR: tab_out-value,tab_out-name.
READ TABLE tab_out WITH KEY 'NETAMT_TOT'.
tab_out-value = d_amt.
" For inserting '*' ahead of value
SHIFT tab_out-value LEFT DELETING LEADING space. """"????IMP
MODIFY tab_out INDEX sy-tabix.
Get the Amount in words for Indian currency
Can also use the FM 'HR_IN_CHG_INR_WRDS'
CALL FUNCTION 'Z_SPELL_AMOUNT_INR'
EXPORTING
amount = d_dmbtr1
IMPORTING
rupees_str = d_words.
Shift left since above Function Module introduces an initial space
SHIFT d_words LEFT DELETING LEADING space.
<-- 21.05.2005
*CALL FUNCTION 'C147_STRING_SPLIT_AT_POSITION'
EXPORTING
i_string = d_words
i_position = 80
IMPORTING
E_HEAD = d_words1
E_TAIL = d_words2.
len = STRLEN( d_words ).
Only 80 characters can be passed to one SAPScript symbol
Split 'd_words' into 'd_words1' and 'd_words2'
since 'DEFINE' in SAPScript displays maximum 80 charact -
How the below query is working
Hi,
I am newly joined in the group.
the emp table has 5 rows as below
100 ram 10000.00 10
200 kumar 15000.00 10
300 william 20000.00 10
400 ravi 25000.00 10
500 victor 30000.00 10
i execute the below query
select ename,sal from emp_test where case when sal < 10000 then sal + 1000
when sal < 20000 then sal + 2000
else sal
end < 20000
it gives the below output
ram 10000.00
kumar 15000.00
How the above query is working?
Please explain. thanks in advanceIf you want it to show the changed salary, it has to be in the select line not the where:
select ename,
(case when sal < 10000 then sal + 1000
when sal < 20000 then sal + 2000
else sal
end) sal from emp_test
where case when sal < 10000 then sal + 1000
when sal < 20000 then sal + 2000
else sal
end < 20000 -
Need Help on below Query.
Hi All,
Need Help on below Query.
Consider,
"test9" Table Data in COLUMN "Name" AS
Name
=====
'a'
'b'
'c'
'd'
'e'
I am writing a query as :
SELECT * FROM test9 WHERE Name IN ('a','b','c','d','e','f','g')
I want result set as , It should show data as -
'f'
'g'
i.e. data which does not exists in the table and which is give in in clause
Is it possible in a single query.You can put the data that is to be checked for into a table instead or an inline view, for example:
with t as
(select 'a' as c1 from dual
union all
select 'b' from dual
union all
select 'c' from dual
union all
select 'd' from dual
union all
select 'e' from dual)
select c1 from (select 'a' as c1 from dual
union all
select 'b' from dual
union all
select 'c' from dual
union all
select 'd' from dual
union all
select 'e' from dual
union all
select 'f' from dual
union all
select 'g' from dual)
minus
select c1 from t
C
f
g
2 rows selected.
Maybe you are looking for
-
Hi people, We need to create the variant to "Payment medium Program RFFOBR". Some time ago we worked with the transaction SE38, put the program: RFFOBR_U and create our Variants. But now, this transaction is considered critical in our company and it
-
Import and Open File options freeze up
When I click any Import option (Word, HTM, merge XPJ), the browser window does not open to allow me to select files. This happens on ALL import options. The RoboHelp screen freezes up and I get an error sound when I click any other option. This req
-
Help in using JSP: Urgent As Project dues soon
Hello Guys, i am new here. I got some problems using jsp. My main project is about a webpage where there is login and password for users. But, I can GO to a certain JSP page without LOGINING in. For example, i got a jsp page for customer to buy and s
-
Blank thumbnails even after library repairing
Photos works flawlessly on my 2013 MacBook Pro but doesn't work on my 2009 iMac 27". All the thumbnails remain blank after multiple library repairing and restarting (app and computer). I used the Option + Command + App Launching to access the library
-
I have a 500gb running my computer and want to upgrade to a 1000gb how can i do this?
I would like to upgrade my 500 gb to a 1000gb HD which will run my apple Mac pro 2009 Tower. Iam confident in changing HDs but wondering how to put all the operating software onto a new HD. Many thanks, Mac