I assumed the date range would only ever be one week just to give you a quick example of NEXT_DAY... SQL> run test.sql 1 WITH x 2 AS ( (SELECT 'M' date_str, 3 TO_DATE ('12/14/2014', 'MM/DD?YYYY') start_date, 4 TO_DATE ('12/20/2014', 'MM/DD?YYYY') end_date 5 FROM DUAL) 6 UNION 7 (SELECT 'T' date_str, 8 TO_DATE ('12/14/2014', 'MM/DD?YYYY') start_date, 9 TO_DATE ('12/20/2014', 'MM/DD?YYYY') end_date 10 FROM DUAL) 11 UNION 12 (SELECT 'W' date_str, 13 TO_DATE ('12/14/2014', 'MM/DD?YYYY') start_date, 14 TO_DATE ('12/20/2014', 'MM/DD?YYYY') end_date 15 FROM DUAL) 16 UNION 17 (SELECT 'TR' date_str, 18 TO_DATE ('12/14/2014', 'MM/DD?YYYY') start_date, 19 TO_DATE ('12/20/2014', 'MM/DD?YYYY') end_date 20 FROM DUAL) 21 UNION 22 (SELECT 'MWF' date_str, 23 TO_DATE ('12/14/2014', 'MM/DD?YYYY') start_date, 24 TO_DATE ('12/20/2014', 'MM/DD?YYYY') end_date 25 FROM DUAL)), 26 y 27 AS (SELECT 'M' DOW, 'MONDAY' DAY_OF_WEEK FROM DUAL 28 UNION 29 SELECT 'T' DOW, 'TUESDAY' DAY_OF_WEEK FROM DUAL 30 UNION 31 SELECT 'W' DOW, 'WEDNESDAY' DAY_OF_WEEK FROM DUAL 32 UNION 33 SELECT 'R' DOW, 'THURSDAY' DAY_OF_WEEK FROM DUAL 34 UNION 35 SELECT 'F' DOW, 'FRIDAY' DAY_OF_WEEK FROM DUAL) 36 SELECT date_str, 37 start_date, 38 end_date, 39 NEXT_DAY (start_date, y1.day_of_week) first_date, 40 NEXT_DAY (start_date, y2.day_of_week) second_date, 41 NEXT_DAY (start_date, y3.day_of_week) third_date 42 FROM x, 43 y y1, 44 y y2, 45 y y3 46 WHERE SUBSTR (x.date_str, 1, 1) = y1.dow (+) 47 AND SUBSTR (x.date_str, 2, 1) = y2.dow (+) 48* AND SUBSTR (x.date_str, 3, 1) = y3.dow (+) DAT START_DATE END_DATE FIRST_DATE SECOND_DATE THIRD_DATE --- ----------- ----------- ----------- ----------- ----------- MWF 14-DEC-2014 20-DEC-2014 15-DEC-2014 17-DEC-2014 19-DEC-2014 M 14-DEC-2014 20-DEC-2014 15-DEC-2014 T 14-DEC-2014 20-DEC-2014 16-DEC-2014 W 14-DEC-2014 20-DEC-2014 17-DEC-2014 TR 14-DEC-2014 20-DEC-2014 16-DEC-2014 18-DEC-2014 On Tue Dec 16 2014 at 1:27:36 PM Ronan Merrick <merrickronan1@xxxxxxxxx> wrote: > Hi Anthony, > > Do you mean if start date was say, 1st December and end date was say 31st > December and days was M, you want to return the dates of all the Mondays in > that set? > > Ronan > On 16 Dec 2014 19:52, "Anthony Ballo" <aballo@xxxxxxx> wrote: > >> Hello, >> >> I'm working on a scheduling SQL problem. I have a rowset that returns >> "days" with a "startdate" and "enddate". >> >> For example - "days" can have the following values: >> >> Days >> ==== >> M >> T >> W >> TR >> MWF >> >> Where: M = Monday, TR = Tuesday & Thursday and MWF = Monday, Wednesday >> and Friday. >> >> What is the best approach to list the appropriate dates of these days >> between the "startdate" and "enddate" range? I would mention that >> "startdate" and "enddate" are the same values for all rows in the rowset if >> that makes a difference. >> >> Any ideas ? >> >> >> Thanks, >> >> Anthony >> >