Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Need help with SQL Query (query for certain IDs in a table and then IDs not in result set)

978495Jun 12 2013 — edited Jun 12 2013

OK. This is hard to explain but that may be my problem in constructing the query.

I have a table that has a list of jobs. The jobs information in this table, among other things, is a short description of the job itself (think "title" in phrase form), date, and ID.

So I can query the table to get all the jobs for a particular grouping of IDs (the only ones I am interested in) that ran successfully for a given time period. But what I want are all the jobs that did not succeed (or therefore are not present in the table) for this group of jobs and for a certain date range. But these are not the only job id's in the table.

To get the successful ones I do the following:

SELECT id,short_desc FROM my_table where

            id IN('1230', '1231', '1232', '1239', '1244', '1245',

            '1246', '1247', '1248', '1272', '1280', '1281', '1282',

            '1283', '1284', '1285', '1286', '1249', '1250', '1251',

            '1252', '1253', '1255', '1233', '1234', '1235', '1236',

            '1237', '1238', '1256', '1257','1258', '1254', '1290','1310')

            AND the_date > = SYSDATE - 23/24

            AND to_char(the_date, 'DD-MON-YYYY') = TO_CHAR(CURRENT_DATE, 'DD-MON-YYYY')

I have tried to use another AND clause with NOT IN and the group or NOT EXISTS but that doesn't work as there are other jobs captured in this table with id's of course. I am only concerned with these id's:

IN('1230', '1231', '1232', '1239', '1244', '1245',

            '1246', '1247', '1248', '1272', '1280', '1281', '1282',

            '1283', '1284', '1285', '1286', '1249', '1250', '1251',

            '1252', '1253', '1255', '1233', '1234', '1235', '1236',

            '1237', '1238', '1256', '1257','1258', '1254', '1290','1310')

Someone said to use a temp table. I don't think I have permission and I haven't tried as I want to do this in one query if possible.

After thinking about this I am at a loss. I tried to do this in the front end but it just became too messy.

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jul 10 2013
Added on Jun 12 2013
6 comments
925 views