Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Сформировать курсор с датами за определенный период / 4 сообщений из 4, страница 1 из 1
29.03.2010, 13:49
    #36548061
Oleg_A67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать курсор с датами за определенный период
Добрый день.
Надо создать курсор со списком дат за определенный период, исключив при этом субботы и воскреснья. Если бы была некая таблица в которой были бы заведены все даты, то с написанием такого запрос
Код: plaintext
SELECT DATE_INPUT FROM TABLE1 WHERE DATE_INPUT BETWEEN '2010-07-01'  AND '2010-08-02' AND  DAYOFWEEK(DATE_INPUT) NOT IN ( 1 , 7 )
проблема была бы решена. А можно ли как-нибудь извернуться с запросом, чтобы не создовать специально таблицу со всеми датами?
...
Рейтинг: 0 / 0
29.03.2010, 14:59
    #36548241
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать курсор с датами за определенный период
А что за проблема-то, которую вы решаете? /вырезано самоцензурой/ (Вот не могу себе представить ситуацию, где кровь из носу нужен такой курсор). Читайте "кулинарную книжку" (http://mysite.verizon.net/Graeme_Birchall/id1.html), постигайте рекурсивные запросы.

А в "реальной жизни" я таблицу бы завёл. Обычно ведь нужны не субботы с воскресеньями, а выходные, которые не обязаны приходиться на эти дни. В том числе праздники (которые могут меняться год от года) и переносы.
...
Рейтинг: 0 / 0
30.03.2010, 15:06
    #36550741
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать курсор с датами за определенный период
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create function workdays(start date, finish date)
returns table (d date)
no external action
deterministic
return
with t(d) as (
values start
  union all
select d +  1  day
from t
where d<finish)
select d
from t
where DAYOFWEEK(d) NOT IN ( 1 , 7 );

select d
from table(workdays(current date -  7  days, current date +  7  days)) t;
...
Рейтинг: 0 / 0
30.03.2010, 18:30
    #36551328
OlegA67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать курсор с датами за определенный период
Mark Barinstein
Большое спасибо
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Сформировать курсор с датами за определенный период / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]