Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Help SQL
Miriam,
Looks like you missed a couple of things:
1). you do not need outer joins in the EXISTS clauses here - you just need to know if
it EXISTS or NOT - it's ok for it to fail 2). looks like you are missing an additional AND clause in the EXISTS clause - you did not
join it to the main PERSON table.
3). looks like you are missing a set of parens around all of the OR clauses
in the second
EXISTS clause.
hope this helps
DS_NPS.NOTES_INFO NOTES
WHERE((NOT EXISTS
(SELECT PES.HPC_ID FROM DS_NPS.PERSON_EVENT_STATUS pes'02-Jan-1900')))))
==> remove outer join WHERE person.HPC_ID = pes.HPC_ID AND
==> remove outer join pes.EVENT_REFERENCE_VALUE_ID = 4116))
OR (EXISTS (SELECT pes.HPC_ID FROM DS_NPS.PERSON_EVENT_STATUS pes WHERE pes.EVENT_REFERENCE_VALUE_ID = 4116 AND pes.STATUS_REFERENCE_VALUE_ID = 1586
==> added this line AND person.hpc_id = pes.HPC_ID
==> added parens around AND (nvl(pes.LAST_UPDATE_DATE, '01-Jan-1900')
<
==> all of the OR's nvl(pes.LAST_UPDATE_DATE,
'02-Jan-1900') OR nvl(pes.LAST_UPDATE_DATE, '02-Jan-1900') < nvl(DEG1089.LAST_UPDATE_DATE, '02-Jan-1900') OR nvl(pes.LAST_UPDATE_DATE, '02-Jan-1900') < nvl(addr1087.LAST_UPDATE_DATE, '02-Jan-1900') OR nvl(pes.LAST_UPDATE_DATE, '02-Jan-1900') < nvl(addr1322.LAST_UPDATE_DATE,
Tom Mercadante
Oracle Certified Professional
-----Original Message-----
Sent: Monday, August 13, 2001 4:21 PM
To: Multiple recipients of list ORACLE-L
Hello dear list,
yet again I need some brainpower. Hopefully someone can tell me how to
format this query.
Here's my problem. I'm trying to run the below query to get a record set of
those users that qualify to be phoned, but ONLY if they have never been
phoned before(by not existing on the PERSON_EVENT_STATUS table) OR if the
LAST_UPDATE_DATE of the person, address or degree table is greater than the
LAST_UPDATE_DATE on the PERSON_EVENT_STATUS table, which would indicate that
this records have been modified. My problem is formatting or the ORs, I seem
to get all the right records if they are not found on the
PERSON_EVENT_STATUS table, but if I rerun this query, I still get the same
records, although they now exists on the PERSON_EVENT_STATUS table. (What
I'm I doing wrong? Problem area in RED).
QUERY;
SELECT RPAD(PROJECT_EVENT.PROJECT_EVENT_ID,18) PROJECT_EVENT_ID,
RPAD(ORG.ORG_ID,18) ORG_ID,
RPAD(TRANSLATE(ORG.ORG_NAME,'1?|''+& *%,#!@_$123.4567832-','1'),100)
ORG_NAME,
RPAD(PERSON.HPC_ID,18) HPC_ID, RPAD(PERSON.DATA_SET_ID,18) DATA_SET_ID, RPAD(NVL(TMKT.SPLIT_CODE,' '),2) SPLIT_CODE, RPAD(NVL(PERSON.PREFIX, ' '),20) PREFIX, RPAD(PERSON.FIRST_NAME, 50) FIRST_NAME, RPAD(TRANSLATE(PERSON.LAST_NAME,'1?|''+& *%,#"!@_$123.4567832-','1'),50) LAST_NAME, RPAD(NVL(PERSON.SUFFIX,' '),20) SUFFIX,RPAD(NVL(ADDR1087.STREET_LINE_1,'
RPAD(NVL(ADDR1087.ZIP,' '), 9) ZIP,
RPAD(NVL(ADDR1087.PRIMARY_PHONE_NMBR,'0000000000'),10,'0')
PRIMARY_PHONE_NMBR,
RPAD(NVL(ADDR1322.PRIMARY_PHONE_NMBR,'0000000000'),10,'0')
SECONDARY_PHONE_NMBR,
RPAD(NVL(DECODE(ADDR1087.SECONDARY_PHONE_NMBR,NULL,ADDR1338.PRIMARY_PHONE_NM
BR,ADDR1087.SECONDARY_PHONE_NMBR),'0000000000'),10,'0') OTHER_PHONE,
PERSON.VIP_IND,
RPAD(NVL(TO_CHAR(PERSON.DATE_OF_BIRTH,'mmddyyyy'),' '),8)
DATE_OF_BIRTH,
RPAD(NVL(PERSON.GENDER,' '),1) GENDER, RPAD(NVL(PERSON.MARITAL_STATUS,' '), 2) MARITAL_STATUS, RPAD(NVL(DEG1089.CLASS_YEAR,' '), 4) CLASS_YEAR, PERSON.MAIL_RESPONDENT_IND,
RPAD(NVL(TO_CHAR(PROJECT.LCI_DATE, 'mmddyyyy'),' '),8) LCI_DATE, RPAD(NVL(PERSON.MARKETING_CODE,' '),20)MARKETING_CODE,
RPAD(NVL(TMKT.TOLL_FREE_NUMBER,8004553052),10,'0') TOLL_FREE_NUMBER, Rpad(NVL(PROJECT.PROJECT_ID,0000000000000000000),18) project_id, RPAD('FILLER',30) FILLER, RPAD('FILLER',30) FILLER2, RPAD('FILLER',30) FILLER3,
NVL(TMKT.CALL_CENTER,'VA')||RPAD('0',1)||NVL(TMKT.SPLIT_CODE,'1')||PROJECT.F INANCE_ORG_CODE||RPAD('FILLER',16) LIST_NAME, RPAD(NVL(PROJECT.FINANCE_ORG_CODE,' '),3) FINANCE_ORG_CODE FROM
DS_NPS.ADDRESS addr1087, DS_NPS.ADDRESS addr1322, DS_NPS.ADDRESS addr1338, DS_NPS.PERSON PERSON, DS_NPS.DEGREE DEG1089, DS_NPS.TMKT_SPLIT TMKT, DS_NPS.DATA_SET DATA_SET, DS_NPS.PROJECT PROJECT, DS_NPS.PROJECT_EVENT PROJECT_EVENT, DS_NPS.ORGANIZATION ORG, DS_NPS.NOTES_INFO NOTES
(SELECT PES.HPC_ID FROM DS_NPS.PERSON_EVENT_STATUS pes WHERE person.HPC_ID = pes.HPC_ID (+) AND pes.EVENT_REFERENCE_VALUE_ID (+) = 4116)) OR (EXISTS (SELECT pes.HPC_ID FROM DS_NPS.PERSON_EVENT_STATUS pes WHERE pes.EVENT_REFERENCE_VALUE_ID = 4116 AND pes.STATUS_REFERENCE_VALUE_ID = 1586 AND nvl(pes.LAST_UPDATE_DATE, '01-Jan-1900') < nvl(pes.LAST_UPDATE_DATE, '02-Jan-1900') OR nvl(pes.LAST_UPDATE_DATE, '02-Jan-1900') < nvl(DEG1089.LAST_UPDATE_DATE, '02-Jan-1900') OR nvl(pes.LAST_UPDATE_DATE, '02-Jan-1900') < nvl(addr1087.LAST_UPDATE_DATE, '02-Jan-1900') OR nvl(pes.LAST_UPDATE_DATE, '02-Jan-1900') <nvl(addr1322.LAST_UPDATE_DATE, '02-Jan-1900'))))
AND TRUNC(SYSDATE) BETWEEN TRUNC(PROJECT.OB_START_DATE -5) AND
TRUNC(PROJECT.LCI_DATE + 5)
AND PERSON.DUPLICATE_IND = 'N'
AND (TMKT.CALL_CENTER <> ' '
OR TMKT.CALL_CENTER IS NOT NULL)
AND (TMKT.SPLIT_CODE <> ' '
OR TMKT.SPLIT_CODE IS NOT NULL)
AND (PERSON.DO_NOT_CALL_STATUS = ' '
OR PERSON.DO_NOT_CALL_STATUS IS NULL)
AND PERSON.REQUESTED_OMIT_IND = 'N'
AND (NVL(addr1087.CITY,'*') NOT LIKE 'APO%'
AND NVL(addr1087.CITY,'*') NOT LIKE 'FPO%')
AND (addr1087.COUNTRY is null
or addr1087.COUNTRY IN('CA','BE','US') AND (addr1087.PRIMARY_PHONE_NMBR is not null
or addr1322.PRIMARY_PHONE_NMBR is not null or addr1087.PRIMARY_PHONE_NMBR NOT IN(0000000000,9999999999) -- or addr1087.SECONDARY_PHONE_NMBR NOT IN(0000000000,9999999999) or addr1322.PRIMARY_PHONE_NMBR NOT IN(0000000000,9999999999) or substr(addr1087.PRIMARY_PHONE_NMBR,1,1) NOT IN(0,1) -- or substr(addr1087.SECONDARY_PHONE_NMBR,1,1) NOT IN(0,1) or substr(addr1322.PRIMARY_PHONE_NMBR,1,1) NOT IN(0,1) or LENGTH(addr1087.PRIMARY_PHONE_NMBR) = 10 or LENGTH(addr1322.PRIMARY_PHONE_NMBR) = 10)) -- or LENGTH(OTHER_PHONE_NMBR) = 10)) AND (PERSON.FIRST_NAME <> ' ' OR PERSON.FIRST_NAME IS NOT NULL) AND (PERSON.LAST_NAME <> ' ' OR PERSON.LAST_NAME IS NOT NULL)
AND person.HPC_ID = addr1087.HPC_ID (+) AND addr1087.REFERENCE_VALUE_ROW_TYPE (+) = 1087 AND person.HPC_ID = addr1322.HPC_ID (+) AND addr1322.REFERENCE_VALUE_ROW_TYPE (+) = 1322 AND person.HPC_ID = addr1338.HPC_ID (+) AND addr1338.REFERENCE_VALUE_ROW_TYPE (+) = 1338AND PERSON.HPC_ID = DEG1089.HPC_ID (+) AND DEG1089.REFERENCE_VALUE_ROW_TYPE (+) = 1089 AND TMKT.TMKT_SPLIT = PERSON.TMKT_SPLIT(+) AND PERSON.HPC_ID = NOTES.HPC_ID (+)
TIA, Miriam Bryan
-- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Bryan, Miriam INET: mbryan_at_bcharrispub.com Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Mercadante, Thomas F INET: NDATFM_at_labor.state.ny.us Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).Received on Mon Aug 13 2001 - 14:38:03 CDT
![]() |
![]() |