Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> состаивть запросы 
V
    Опции темы
Jolia
Дата 4.11.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 12.3.2007

Репутация: нет
Всего: нет



Здравствуйте всем...Впервые столкнувшись с составлением SQL-запросов вручную поняла что сама не справлюсь, посему прошу о помощи у вас....

Даны три таблицы(база данных номероа гостиницы):

        Номер                          Клиент                         Тариф
        --------                          ---------                          ---------
PK  код номера              PK код клиента              PK  код тарифа
FK  код тарифа              FK код номера                     категория
                                            паспорт.данные             число мест
                                            дата приезда                 цена за сутки
                                            дата отъезда
                                            ФИО
                                            сумма к оплате


Составить SQL-запросы:
-    Вывести список свободных номеров на сегодняшний день, отсортировать по возрастанию стоимости.
Отобразить номер, категорию, число мест, стоимость.
-    Рассчитать стоимость заселения клиента в номер по формуле полное количество дней × стоимость суток проживания в выбранном номере. Входные параметры: код клиента и код номера.
Отобразить стоимость проживания.
-    Вывести список клиентов, освобождающих свои номера завтра.
Отобразить ФИО клиента, номер, число мест, стоимость.

Примечание. Функция TODAY() возвращает сегодняшнюю дату. Разность двух дат представляет собой количество дней между ними.

В общем вотъ....заранее спасибо!)
PM MAIL   Вверх
Zloxa
Дата 5.11.2008, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Студент изволит лениться?

Цитата(Jolia @  4.11.2008,  12:19 Найти цитируемый пост)
-    Вывести список свободных номеров на сегодняшний день, отсортировать по возрастанию стоимости.
Отобразить номер, категорию, число мест, стоимость.


Код

select номер.код_номера,тариф.категория, тариф.число_мест,тариф.стоимость 
from номер
  inner join тариф on тариф.код_тарифа = номер.код_тарифа
  left join клиент on клиент.код_номера = номер.код_номера
                   and клиент.дата_приезда <= today()
                   and клиент.дата_отъезда > today()
where клиент.код_клиента is null
order by тариф.цена_за_сутки


Цитата(Jolia @  4.11.2008,  12:19 Найти цитируемый пост)
-    Рассчитать стоимость заселения клиента в номер по формуле полное количество дней × стоимость суток проживания в выбранном номере. Входные параметры: код клиента и код номера.
Отобразить стоимость проживания.

Код

select trunc(дата_отъезда-дата_приезда) *  цена_за_сутки стоимость_проживания
from клиент, номер, тариф
where
 номер.код_тарифа = тариф.код_тарифа
 --and клиент.код_номера = номер.код_номера 
 and клиент.код_клиента = :код_клиента
 and номер.код_номера = :код_номера
 
Предполагается что клиент может не жить в номере. Если клиент живет в номере, то убрать комментарий, но, при этом становится не нужным один из параметров, либо клиент, либо номер.
Цитата(Jolia @  4.11.2008,  12:19 Найти цитируемый пост)
-    Вывести список клиентов, освобождающих свои номера завтра.
Отобразить ФИО клиента, номер, число мест, стоимость.

Код

select фио,клиент.код_номера, число_мест, стоимость 
  from клиент,номер 
  where дата_отъезда - today() between 0 and 1
            and клиент.код_номера = номер.код_номера






Это сообщение отредактировал(а) Zloxa - 5.11.2008, 16:27


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Jolia
Дата 8.11.2008, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 12.3.2007

Репутация: нет
Всего: нет



большООООООООООООООООе спасибо)))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0421 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.