select l.id, l.surname, l.fname, LAST_DAY(ADD_MONTHS('02.03.2013', -2)) + level,
TO_CHAR(T.fdate,'DD.MM.YYYY') FDATE from pers_log t, pers_list l
where t.id=l.id and t.id='1316'
CONNECT BY NOCYCLE level <= LAST_DAY(ADD_MONTHS('02.09.2013', -1)) - LAST_DAY(ADD_MONTHS('02.09.2013', -2))
Я написал запрос в форме. но вступил в бесконечный цикл. Несмотря на долгое ожидание, результат не возвращается. я не понимаю, где я ошибаюсь ... (Пожалуйста, обратите внимание, что дни месяца)Как я могу снять дни месяца в oracle
21 aaaa bbbbb 01.08.2013 (note:pers_log fdate is not null)
2 aaaa bbbbb 02.08.2013 (note:pers_log fdate is not null)
23 aaaa bbbbb 03.08.2013 (note:pers_log fdate is not null)
null null null 04.08.2013
55 aaaa bbbbb 05.08.2013 (note:pers_log fdate is not null)
null null null 06.08.2013
....
null null null 27.08.2013
28 aaaa bbbbb 28.08.2013 (note:pers_log fdate is not null)
null null null 29.08.2013
60 aaaa bbbbb 30.08.2013 (note:pers_log fdate is not null)
51 aaaa bbbbb 31.08.2013 (note:pers_log fdate is not null)
Следующие не является проблемой в конце концов, но я не мог найти причину чтобы ввести бесконечный цикл, подобный описанному выше запросу.
select l.id, l.surname, l.fname
TO_CHAR(T.fdate,'DD.MM.YYYY') FDATE from pers_log t, pers_list l
and to_char(t.FDATE, 'YYYY')='2013' and to_char(t.FDATE, 'MM')='08' and t.id='1316'
order by FDATE asc
21 aaaa bbbbb 01.08.2013
2 aaaa bbbbb 02.08.2013
23 aaaa bbbbb 03.08.2013
55 aaaa bbbbb 05.08.2013
28 aaaa bbbbb 28.08.2013
60 aaaa bbbbb 30.08.2013
51 aaaa bbbbb 31.08.2013
Каковы результаты запроса, как я писал выше, следующий запрос возвращает ошибку, причины и следствия, но
Не уверен, что вы закончите вопрос, который вы оставили, но трудно понять, что вы имеете в виду. Нет никаких циклов, так как это просто не возвращается после долгого времени или это выполняется внутри цикла PL/SQL? Вы начали упоминать об ошибке, но не отображали ее. Первый запрос кажется смущенным о том, является ли это для марта или сентября. И ваши идентификаторы выглядят так, как будто они должны быть числами, поэтому принудительное их чередование ('1316'') может немного замедлить работу, если таблицы большие, хотя у вас, похоже, нет данных для' 1316'. У вас есть план объяснений, чтобы увидеть, что происходит? –
все дни моего намерения взять месяц и день месяца, если моя таблица (id, fname, фамилия, дата), но если вы не вернете их в null в результате выражения запроса или результата это то, что ошибка ввода бесконечный цикл – ant
'21 AAAA BBBBB 01.08.2013 2 AAAA BBBBB 02.08.2013 23 AAAA BBBBB 03.08.2013 нуль нуль нуль 04.08.2013 55 AAAA BBBBB 05.08.2013 нуль нуль нуль 06.08. 2013 .... null null null null 27.08.2013 28 aaaa bbbbb 28.08.2013 null null null null 29.08.2013 60 aaaa bbbbb 30.08.2013 51 aaaa bbbbb 31.08.2013 ' – ant