![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
2000 Получить список дат. [MSSQL]
KAA © (2002-12-19 12:54:00)Таблица:
DTBegin datetime
DTEnd datetime
Заполнена она так:
DTBegin DTEnd
01.12.2002 03.12.2002
02.12.2002 05.12.2002
01.12.2002 07.12.2002
05.12.2002 07.12.2002
Задача - получить следующую таблицу
01.12.2002
02.12.2002
03.12.2002
05.12.2002
07.12.2002
KAA (2002-12-19 14:55:00) [1]>3JIA9I CyKA © (19.12.02 14:44)
На определенном отрезке, в том то и вся сложность.
Вообщем решение, разбить весь отрезок на более мелкие, границы которых я и запрашивал в первоначальном варианте. Затем на каждом отрезке считаем сумму занятых мест.
3JIA9I CyKA (2002-12-19 14:44:00) [2]занято на определенном отрезке времени
или на момент времени?
KAA (2002-12-19 14:38:00) [3]>Prooksius © (19.12.02 14:32)
У меня и так вся программа на ХП
KAA (2002-12-19 14:37:00) [4]Вообще глобально это задача на нахожденеи перечечения отрезков.
000000000000XXXXXXXXXX0000000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXX0000000000000XXXXXXXXX
Вот изображене зантости мест в номере. 0 - в этот час место свободно, Х - занято. Подсчитать, сколько мест в номере занято на определенном отрезке времени.
Просто я уже срашивал об этом, идей не подкинули. Вот теперь по частям пытаюсь выяснить.
Prooksius (2002-12-19 14:32:00) [5]Тут ИМХО ХП нужно заводить.
Prooksius (2002-12-19 14:28:00) [6]2 KAA © (19.12.02 14:24)
Скажи на словах, что нужно. Из этого немного непонятно.
KAA (2002-12-19 14:24:00) [7]А если немного усложнить задачу и получить такую таблицу:
01.12.2002 02.12.2002
02.12.2002 03.12.2002
03.12.2002 05.12.2002
05.12.2002 07.12.2002
Prooksius (2002-12-19 13:00:00) [8]И select distinct from (Prooksius © (19.12.02 12:58))
Если так можно... :)
Prooksius (2002-12-19 12:58:00) [9]select DTBegin from Table1
union
select DTEnd from Table1
order by 1