Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Запрос в таблицу рабочих дней недели из PB10 / 15 сообщений из 15, страница 1 из 1
19.09.2007, 15:05
    #34811547
breathem
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
Приветствую всех. Дано: ASA 9.0.2.3546, PB 10.5.1.6684 и таблица рабочих дней недели. Для простоты привожу ее часть:
....
2007-09-19 00:00:00.000
2007-09-20 00:00:00.000
2007-09-21 00:00:00.000
2007-09-24 00:00:00.000
.....

wd_date является праймари, больше колонок в таблице нет.

Нужно: из билдера написать запрос в таблицу с целью вытащить, например, дату 2007-09-24 00:00:00.000. Дата 2007-09-19 00:00:00.000 изначально известна и ей можно манипулировать как угодно.

Заранее благодарен за ответы.
...
Рейтинг: 0 / 0
19.09.2007, 15:13
    #34811580
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
Код: plaintext
1.
2.
3.
SELECT min(col_date)
INTO :ld_date
FROM T1
WHERE col_date > :ld_date;
...
Рейтинг: 0 / 0
19.09.2007, 15:39
    #34811691
breathem
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
Уточню вопрос.

Есть дата 2007-09-19 00:00:00.000 и некое число дней. В билдере есть функция Relativedate( date, days ), которая, естественно ничего про выходные в РФ не знает, но возвращает дату через столько то дней от данной. Вопрос: что нужно сделать, чтобы зная число дней и дату начала вырвать из таблицы дату, то есть, зная, что 3 дня и что 2007-09-19 00:00:00.000 вернуть из таблицы рабочих дней дату 2007-09-24 00:00:00.000?
...
Рейтинг: 0 / 0
19.09.2007, 16:14
    #34811848
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
1. Можно перегнать все в DataStore
2. Можно добавить поле id в таблицу
3. Можно получить номер сторки в DB (@@row или @@rownum - или что-то в этом роде)
...
Рейтинг: 0 / 0
19.09.2007, 16:48
    #34811991
breathem
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
Riska, спасибо! Вариант 2, правда, сразу отпадает (вот такое уж начальство), хотя и является самым верным.
...
Рейтинг: 0 / 0
19.09.2007, 17:10
    #34812084
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
breathemзная, что 3 дня и что 2007-09-19 00:00:00.000 вернуть из таблицы рабочих дней дату 2007-09-24 00:00:00.000?
Алгоритм такой
- отфильтровать лишние даты <= начальной даты
- отсортировать даты по возрастанию
- пронумеровать даты
- извлечь дату по номеру
Другими словами ...
Код: plaintext
1.
2.
3.
4.
5.
select dt from (
select dt, row_number() over (order by dt) rown 
  from tt
 where dt > to_date('2007-09-19', 'yyyy-mm-dd') /*start date*/
)
where rown =  3  /*days*/ ;
... мог бы я написать если бы это был Оракл :)

А так как у Вас ASA9 который не поддерживает row_number то Вам надо искать его аналог.
Может этот топик Вам поможет: http://www.sql.ru/forum/actualthread.aspx?tid=468736
Там есть про нумерацию строк.
...
Рейтинг: 0 / 0
19.09.2007, 17:27
    #34812186
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
Anatoly Moskovsky wrote:

> А так как у Вас ASA9 который не поддерживает row_number то Вам надо
> искать его аналог.

Аналог в данной ситуации не очень полезен :). Но можно извратиться,
например, вот так:

select max(wd_date) from
(
select top 3 wd_date
from dba.wd
where wd_date > '2007-09-19'
order by wd_date
) as t ;
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
19.09.2007, 17:43
    #34812267
breathem
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
Всем спасибо за ответы! Говорили же, ИД - святое! Так нет - давай изгаляться...
...
Рейтинг: 0 / 0
19.09.2007, 17:43
    #34812270
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
Dim2000Но можно извратиться,
например, вот так:

select max(wd_date) from
(
select top 3 wd_date
from dba.wd
where wd_date > '2007-09-19'
order by wd_date
) as t ;

Почему же извратиться? Вполне нормальное решение.
А вот наличие в БД такой таблички и есть извращение :)
...
Рейтинг: 0 / 0
19.09.2007, 19:21
    #34812555
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
Наличие такой таблички в системе может быть вполне необходимо, если ,например, в ней же хранить количество рабочих часов, признаки выходных дней и т.п.. Откуда база знает про предпраздничные дни и что в России отдыхают по десять дней подряд? :-)))
...
Рейтинг: 0 / 0
19.09.2007, 19:24
    #34812563
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
urvasНаличие такой таблички в системе может быть вполне необходимо, если ,например, в ней же хранить количество рабочих часов, признаки выходных дней и т.п.. Откуда база знает про предпраздничные дни и что в России отдыхают по десять дней подряд? :-)))
Учитесь читать urvas. Наличие такой таблички, а не таблички ...
...
Рейтинг: 0 / 0
20.09.2007, 10:54
    #34813574
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
К чему столько агрессии, Филипп? На работе что-то не ладно, а пар некуда сбрасывать? Сделайте милость, будьте спокойней!
...
Рейтинг: 0 / 0
20.09.2007, 11:54
    #34813846
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
urvasНаличие такой таблички в системе может быть вполне необходимо, если ,например, в ней же хранить количество рабочих часов, признаки выходных дней и т.п.. Откуда база знает про предпраздничные дни и что в России отдыхают по десять дней подряд? :-)))
Я бы хранил праздники, а не рабочие или выходные. Да еще и не дублировал бы из года в год, а только при изменениях.
...
Рейтинг: 0 / 0
21.09.2007, 12:50
    #34817411
zenk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
Уж лучше таблицу со всеми днями и их статусами. Таблица праздников тоже не помешает, с датами начала и конца их действия. Я ещё хранил официальные названия праздников :-) и документы, которыми они были установлены. Таблица праздников использовалась при формировании основной таблицы на год.
...
Рейтинг: 0 / 0
02.10.2007, 17:16
    #34841699
pjanri
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в таблицу рабочих дней недели из PB10
select t2.wb_date
, (select count(1) from test t where t.wb_date <= t2.wb_date) as nr2
from test t2
where nr2 = <желаемая консанта : 2 > + (

select (select count(1) from test t where t.wb_date <= t1.wb_date) as nr
from test t1
where t1.wb_date = < начальная дата : '2007-09-20' >
)

можно офорить как VIEW
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Запрос в таблицу рабочих дней недели из PB10 / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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