Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Задачка: Как в запросе убрать выходные дни при выборке за период?  [new]
Без выходных
Guest
Нужно выбрать количество принятых звонков за рабочий месяц, но при этом сделать так,
чтобы выходные дни (каждая суббота и воскресенье) не учитывались, а также
считать, что рабочий день с 10:00 до 19:00, и если звонок был, скажем, в 19:30,
то его не учитывать, даже если он входит в интервал.

Возможно такое?
10 янв 13, 19:33    [13749631]     Ответить | Цитировать Сообщить модератору
 Re: Задачка: Как в запросе убрать выходные дни при выборке за период?  [new]
Без выходных
Guest
и ещё вопрос: возможно ли написать такой общий запрос для решения этой задачи, который бы
подошёл для: oracle, mssql, mysql?
10 янв 13, 19:35    [13749644]     Ответить | Цитировать Сообщить модератору
 Re: Задачка: Как в запросе убрать выходные дни при выборке за период?  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
Без выходных
и ещё вопрос: возможно ли написать такой общий запрос для решения этой задачи, который бы
подошёл для: oracle, mssql, mysql?
Нет. Функции работы с датами разные.
10 янв 13, 19:42    [13749685]     Ответить | Цитировать Сообщить модератору
 Re: Задачка: Как в запросе убрать выходные дни при выборке за период?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Без выходных,

для начала - определитесь, что для вас выходные и
в поиск идите - там этого много.
10 янв 13, 19:43    [13749697]     Ответить | Цитировать Сообщить модератору
 Re: Задачка: Как в запросе убрать выходные дни при выборке за период?  [new]
-2-
Member

Откуда:
Сообщений: 15330
Забить табличку с рабочим дня-временем на сто лет вперед.
10 янв 13, 19:44    [13749705]     Ответить | Цитировать Сообщить модератору
 Re: Задачка: Как в запросе убрать выходные дни при выборке за период?  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8131
-2-
Забить табличку с рабочим дня-временем на сто лет вперед.
+ ежегодно корректировать её по мере выхода постановлений Правительства о выходных и праздничных днях
10 янв 13, 20:16    [13749881]     Ответить | Цитировать Сообщить модератору
 Re: Задачка: Как в запросе убрать выходные дни при выборке за период?  [new]
Без выходных
Guest
orawish
Без выходных,

для начала - определитесь, что для вас выходные и
в поиск идите - там этого много.


чтобы выходные дни (каждая суббота и воскресенье) не учитывались
11 янв 13, 13:00    [13753249]     Ответить | Цитировать Сообщить модератору
 Re: Задачка: Как в запросе убрать выходные дни при выборке за период?  [new]
Без выходных
Guest
SQL*Plus
-2-
Забить табличку с рабочим дня-временем на сто лет вперед.
+ ежегодно корректировать её по мере выхода постановлений Правительства о выходных и праздничных днях


спасибо за идею!

а забивать эту табличку вручную? на сто лет вперёд вручную забивать долго...
нужен скрипт волшебный.
11 янв 13, 13:01    [13753264]     Ответить | Цитировать Сообщить модератору
 Re: Задачка: Как в запросе убрать выходные дни при выборке за период?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Без выходных,

что-то путаетесь вы в показаниях.
одно дело - субботы и воскресенья. тут всё может быть решено алгоритмически.
другое дело - ежели учитывать надо и праздники+сопутствующие им переносы выходных. здесь алгоритм просто отсутствует,
ибо как у закон-дателей(-исполнителей) левая нога зачешется, так они и перенесут. в РФ эту информацию поддерживает документ рабочий календарь на такой-то год - в инете найдёте легко.
а еще - в субъектах федерации возможен, в смысле праздников, некий произвол.
так что, прежде чем искать волшебные скрипты - сосредоточтесь и решите уже чего вам надо
11 янв 13, 13:15    [13753412]     Ответить | Цитировать Сообщить модератору
 Re: Задачка: Как в запросе убрать выходные дни при выборке за период?  [new]
Без выходных
Guest
orawish
Без выходных,

что-то путаетесь вы в показаниях.
одно дело - субботы и воскресенья. тут всё может быть решено алгоритмически.
другое дело - ежели учитывать надо и праздники+сопутствующие им переносы выходных. здесь алгоритм просто отсутствует,
ибо как у закон-дателей(-исполнителей) левая нога зачешется, так они и перенесут. в РФ эту информацию поддерживает документ рабочий календарь на такой-то год - в инете найдёте легко.
а еще - в субъектах федерации возможен, в смысле праздников, некий произвол.
так что, прежде чем искать волшебные скрипты - сосредоточтесь и решите уже чего вам надо


мне нужно исключить субботы и воскресенья
и считать рабочие дни (любые дни кроме субботы и воскресенья) с 10:00 по 19:00
праздники я не учитываю.
11 янв 13, 13:34    [13753605]     Ответить | Цитировать Сообщить модератору
 Re: Задачка: Как в запросе убрать выходные дни при выборке за период?  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
Без выходных
а забивать эту табличку вручную? на сто лет вперёд вручную забивать долго...
нужен скрипт волшебный.

Скрипт волшебный
SELECT to_date('01.01.2013','fxDD.MM.YYYY') - 1 + rownum AS dt
FROM dual 
CONNECT BY level <= to_date('01.01.2014','fxDD.MM.YYYY') 
                  - to_date('01.01.2013','fxDD.MM.YYYY')

допили своим SQL-рашпилем :)
11 янв 13, 13:36    [13753624]     Ответить | Цитировать Сообщить модератору
 Re: Задачка: Как в запросе убрать выходные дни при выборке за период?  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
Без выходных
мне нужно исключить субботы и воскресенья
и считать рабочие дни (любые дни кроме субботы и воскресенья) с 10:00 по 19:00
праздники я не учитываю.

WITH tab_dt AS (
SELECT to_date('01.01.2013','fxDD.MM.YYYY') - 1 + rownum AS dt
FROM dual 
CONNECT BY level <= to_date('01.01.2014','fxDD.MM.YYYY') 
                  - to_date('01.01.2013','fxDD.MM.YYYY')
)
SELECT TO_CHAR(dt, 'DD.MM.YYYY Day')
     , TO_CHAR(dt, 'Day', 'NLS_DATE_LANGUAGE=AMERICAN')||'"' AS day_fix 
     , TO_CHAR(dt, 'fmDay', 'NLS_DATE_LANGUAGE=AMERICAN')||'"' AS day_min_len
FROM tab_dt
WHERE TO_CHAR(dt, 'fmDay', 'NLS_DATE_LANGUAGE=AMERICAN') NOT IN ('Saturday', 'Sunday') 
11 янв 13, 13:46    [13753708]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить