Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос по количеству занятых номеров на каждый день  [new]
wizzard2009
Member

Откуда: Москва
Сообщений: 19
Друзья! Помогите пожалуйста вот с таким запросом.
Есть 2 таблицы. Таблица Заезды:
ID
ID_Номера
ДатаНачалаЗаезда
ДатаОкончанияЗаезда

Таблица Номера:
ID
Наименование
КоличествоНомеров

Нужно сформировать запрос, который бы выводил по дням в развернутом
виде количество свободных номеров. Номер считается свободным,
если о нем отсутствует запись в таблице Заезды.
Номеров много, и даты могут перекрываться.
Пример. Таблица Номера:
1 1-местный 5
2 2-местный 3

Таблица заезды

1 1 25.01.12 27.01.12
2 1 26.01.12 28.01.12
3 2 25.01.12 28.01.12
4 2 27.01.12 30.01.12

В итоге нужно получить такое(Дата, ID_Номера,Количество свободных номеров):

25.01.12 1 4
26.01.12 1 4
27.01.12 1 3
28.01.12 1 3
29.01.12 1 5
30.01.12 1 5
25.01.12 2 2
26.01.12 2 2
27.01.12 2 1
28.01.12 2 1
29.01.12 2 2
30.01.12 2 2

Если невозможно на каждый день, то можно и на даты, где количество мест менялось.

25.01.12 1 4
27.01.12 1 3
29.01.12 1 5
25.01.12 2 2
27.01.12 2 1
29.01.12 2 2
20 мар 12, 12:40    [12280215]     Ответить | Цитировать Сообщить модератору
 Re: Запрос по количеству занятых номеров на каждый день  [new]
vadim-tmn
Member

Откуда:
Сообщений: 52
wizzard2009,

так?!)

select t1.data_n, t2.naim
,
isnull((select tn.col_nom-isnull(count(*) ,0)
from zaezd z
right join tabnom tn on tn.id=z.id_nom
where t1.Data_n between z.Data_n and z.Data_o
and tn.id= t2.id
group by z.id_nom,tn.col_nom
), t2.col_nom) as [остаток]
from
tabnom t2,
(
select distinct data_n from zaezd
union
select distinct data_o from zaezd
) t1
20 мар 12, 15:00    [12281654]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить