Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гостиница1 / титульник1.doc
Скачиваний:
109
Добавлен:
01.05.2014
Размер:
1 Mб
Скачать

4. Описание запросов

Запрос на дежурство

Формулировка запроса: выбрать все записи из таблицы “Служащий” и соответствующие им из таблицы “Когда и где дежурить” группируя их по заданному в форме “Служащий” полю “WORK_ID”

SQL-код запроса:SELECT [Когда и где дежурить].WEEKDAY, [Когда и где дежурить].FLOUR, Служащий.WORK_ID

FROM Служащий INNER JOIN [Когда и где дежурить] ON Служащий.WORK_ID = [Когда и где дежурить].WORK_ID

WHERE (((Служащий.WORK_ID)=[Forms]![Служащий]![WORK_ID]));

Результат запроса: дни недели и соответствующие им этажи на которых дежурит работник с заданным “WORK_ID”

Запрос квартальный

Формулировка запроса: объединить все записи из выборок по таблицам “Клиент” и “В” в которых выбираются дата поселения и дата выселения(Date() для таблицы “Клиент” и WHEN_OUT для таблицы “В”) в соответствующие номера. Выборка производится по признаку пересечения временных интервалов “даты поселения-выселения” и интервала определяемого пользователем в форме “Форма отчетов”. Так же рассчитывается интервал(если он существует) пересечения.

SQL-код запроса:SELECT [Цена номера].COST, ROOM, B1, E1, B2, E2, P1, P2, P3, P4, IIf(P1<=P2 And P1<=P3 And P1<=P4,P1,

(

IIf(P2<=P1 And P2<=P3 And P2<=P4,P2,

(

IIf(P3<=P2 And P3<=P1 And P3<=P4,P3,

(

IIf(P4<=P2 And P4<=P3 And P4<=P1,P4)

)

)

)

)

)

) AS PP

FROM [SELECT Клиент.ROOM, Клиент.WHEN AS B1, Date() AS E1, Forms!Форма_отчетов!NACH_DATA AS B2, Forms!Форма_отчетов!KONECH_DATA AS E2, [Цена номера].COST , Date() - Forms!Форма_отчетов!NACH_DATA AS P1 , Forms!Форма_отчетов!KONECH_DATA - Клиент.WHEN AS P2 , Date() - Клиент.WHEN AS P3 , Forms!Форма_отчетов!KONECH_DATA - Forms!Форма_отчетов!NACH_DATA AS P4

FROM [Цена номера] INNER JOIN (НОМЕР INNER JOIN Клиент ON НОМЕР.ROOM = Клиент.ROOM) ON [Цена номера].KOL_MEST = НОМЕР.KOL_MEST

WHERE ((((Date()<[Forms]![Форма_отчетов]![NACH_DATA]) Or ([Forms]![Форма_отчетов]![KONECH_DATA]<[Клиент].[WHEN]))=False))

UNION SELECT B.ROOM, B.WHEN_IN AS B1, B.WHEN_OUT AS E1, Forms!Форма_отчетов!NACH_DATA AS B2, Forms!Форма_отчетов!KONECH_DATA AS E2, [Цена номера].COST ,

B.WHEN_OUT - Forms!Форма_отчетов!NACH_DATA AS P1 , Forms!Форма_отчетов!KONECH_DATA - B.WHEN_IN AS P2 , B.WHEN_OUT - B.WHEN_IN AS P3 , Forms!Форма_отчетов!KONECH_DATA - Forms!Форма_отчетов!NACH_DATA AS P4

FROM [Цена номера] INNER JOIN (НОМЕР INNER JOIN B ON НОМЕР.ROOM = B.ROOM) ON [Цена номера].KOL_MEST = НОМЕР.KOL_MEST

WHERE (((([B].[WHEN_OUT]<[Forms]![Форма_отчетов]![NACH_DATA]) Or ([Forms]![Форма_отчетов]![KONECH_DATA]<[B].[WHEN_IN]))=False))

]. AS [%$##@_Alias];

Результат запроса: номера интервалы проживания клиентов которых пересекались с временным интервалом заданным пользователем.

Запрос_по_всем_номерам

Формулировка запроса: Выборка всех номеров в которых разница между количеством жилых мест и занятых мест равна 0.

SQL-код запроса: SELECT НОМЕР.ROOM, НОМЕР.KOL_MEST, НОМЕР.LIVE, [KOL_MEST]-[LIVE] AS [AS]

FROM НОМЕР

WHERE ((([KOL_MEST]-[LIVE])>0));

Результат запроса: все номера в которых есть хоть одно свободное место

Поиск_город

Формулировка запроса: выборка по всем клиентам сгруппированным по равенству города прибытия с городом определенным в форме

SQL-код запроса:SELECT Клиент.GUEST_FIO, Клиент.FROM, Клиент.ROOM

FROM Клиент

WHERE (((Клиент.FROM)=[Forms]![Поиск]![Поле9]));

Результат запроса: все клиенты из заданного города

Поиск_номер

Формулировка запроса: выборка по всем клиентам сгруппированным по равенству номера проживания с номером определенным в форме

SQL-код запроса: SELECT Клиент.GUEST_FIO, Клиент.ROOM

FROM Клиент

WHERE (((Клиент.ROOM)=[Forms]![Поиск]![Поле7]));

Результат запроса: все клиенты из заданного номера

Поиск_служащего

Формулировка запроса: выборка полей “GUEST_FIO” , “WEEKDAY” , “WORK_FIO” , “FLOUR” , “ROOM” из таблиц “Клиент” , “Когда и где дежурить” , “Служащий” , “Этаж” , “НОМЕР” сгруппированных по признаку равенства полей “WEEKDAY” и “GUEST_FIO” соответствующим полям заданным в форме.

SQL-код запроса: SELECT [Когда и где дежурить].WEEKDAY, Клиент.GUEST_FIO, Служащий.WORK_FIO, НОМЕР.FLOUR, Клиент.ROOM

FROM (Этаж INNER JOIN (Служащий INNER JOIN [Когда и где дежурить] ON Служащий.WORK_ID = [Когда и где дежурить].WORK_ID) ON Этаж.FLOUR = [Когда и где дежурить].FLOUR) INNER JOIN (НОМЕР INNER JOIN Клиент ON НОМЕР.ROOM = Клиент.ROOM) ON Этаж.FLOUR = НОМЕР.FLOUR

WHERE ((([Когда и где дежурить].WEEKDAY)=[Forms]![Поиск]![ПолеСоСписком33]) AND ((Клиент.GUEST_FIO)=[Forms]![Поиск]![ПолеСоСписком20]));

Результат запроса: служащий дежуривший в определенный день недели в номере у определенного клиента.

Счет за проживание

Формулировка запроса: выборка полей “GUEST_FIO” , “PASSPORT” , “ROOM” , “KOL_MEST” , “COST” из таблиц “Клиент”, “НОМЕР” и “Цена номера” сгруппированных по признаку равенства поля “GUEST_FIO” соответствующему полю заданному в соответствующей форме. Расчет при этом значений: разница между датой поселения клиента и текущей датой и произведение цены номера на предыдущее значение.

SQL-код запроса:SELECT Клиент.GUEST_FIO, Клиент.PASSPORT, Клиент.ROOM, НОМЕР.KOL_MEST, [Цена номера].COST, Date()-[WHEN] AS [Прожил в номере], [COST]*[Прожил в номере] AS [К оплате]

FROM [Цена номера] INNER JOIN (НОМЕР INNER JOIN Клиент ON НОМЕР.ROOM = Клиент.ROOM) ON [Цена номера].KOL_MEST = НОМЕР.KOL_MEST

WHERE (((Клиент.GUEST_FIO)=[Forms]![Клиент]![GUEST_FIO]));

Результат запроса: все данные о заданном клиенте и номере в котором он проживает , а так же количество дней которые он прожил в номере и сумма которую он должен заплатить за весь срок проживания в этом номере.

Соседние файлы в папке Гостиница1