Вот пример, основанный на таблице EMP Скотта, в то время как DATES представляют понедельники этого (2018) года;здесь порядковый номер понедельника = 1;вам может потребоваться изменить это, если оно отличается от того, где вы находитесь.Набор результатов ограничен сотрудниками, чье имя начинается с буквы «М» (чтобы список не был слишком длинным).
SQL> alter session set nls_date_format = 'dd.mm.yyyy';
Session altered.
SQL> alter session set nls_date_language = 'english';
Session altered.
SQL>
SQL> with dates as
2 (select trunc(sysdate, 'yyyy') + level - 1 datum
3 from dual
4 connect by level <= trunc(sysdate) - trunc(sysdate, 'yyyy') + 1
5 )
6 select e.ename, d.datum
7 from dates d cross join emp e
8 where to_char(d.datum, 'd') = '1' --> Monday in Croatia
9 and substr(e.ename, 1, 1) = 'M'
10 order by e.ename, d.datum;
ENAME DATUM
---------- ----------
MARTIN 01.01.2018
MARTIN 08.01.2018
MARTIN 15.01.2018
MARTIN 22.01.2018
MARTIN 29.01.2018
MARTIN 05.02.2018
MARTIN 12.02.2018
MARTIN 19.02.2018
MARTIN 26.02.2018
MARTIN 05.03.2018
MARTIN 12.03.2018
MARTIN 19.03.2018
MARTIN 26.03.2018
MARTIN 02.04.2018
MARTIN 09.04.2018
MARTIN 16.04.2018
MARTIN 23.04.2018
MILLER 01.01.2018
MILLER 08.01.2018
MILLER 15.01.2018
MILLER 22.01.2018
MILLER 29.01.2018
MILLER 05.02.2018
MILLER 12.02.2018
MILLER 19.02.2018
MILLER 26.02.2018
MILLER 05.03.2018
MILLER 12.03.2018
MILLER 19.03.2018
MILLER 26.03.2018
MILLER 02.04.2018
MILLER 09.04.2018
MILLER 16.04.2018
MILLER 23.04.2018
34 rows selected.
SQL>