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

Откуда:
Сообщений: 5
Здравствуйте.Мог бы кто нибудь помочь? вот не могу ни как сложить минуты и сгруппировать компании.
Картинка с другого сайта. вот тут есть мой результат (слева),и то что должно получиться(справа)
http://files.mail.ru/7A51F0BDDEE94A13B7AFD772D610BBD1

select Company.name as company,
(
SELECT CASE WHEN time_dep>=time_arr THEN time_arr-time_dep+1440
ELSE time_arr-time_dep END dur
from
(
SELECT DATEPART(hh, time_in)*60 + DATEPART(mi, time_in) time_arr, DATEPART(hh, time_out)*60 + DATEPART(mi, time_out) time_dep) tm)as minutes

from Company, trip, Pass_in_trip
where (company.ID_comp = trip.ID_comp) and (Pass_in_trip.trip_no=trip.trip_no)
23 дек 13, 15:55    [15334752]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на sql.Помогите.  [new]
Alenochka17117
Member

Откуда:
Сообщений: 5
Для каждой компании, перевозившей пассажиров, подсчитать время, которое провели в полете самолеты с пассажирами.
Вывод: название компании, время в минутах.
это задание
23 дек 13, 16:10    [15334856]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на sql.Помогите.  [new]
Alenochka17117
Member

Откуда:
Сообщений: 5
Схема БД состоит из четырех отношений:
Company (ID_comp, name)
Trip(trip_no, ID_comp, plane, town_from, town_to, time_out, time_in)
Passenger(ID_psg, name)
Pass_in_trip(trip_no, date, ID_psg, place)
Таблица Company содержит идентификатор и название компании, осуществляющей перевозку пассажиров. Таблица Trip содержит информацию о рейсах: номер рейса, идентификатор компании, тип самолета, город отправления, город прибытия, время отправления и время прибытия. Таблица Passenger содержит идентификатор и имя пассажира. Таблица Pass_in_trip содержит информацию о полетах: номер рейса, дата вылета (день), идентификатор пассажира и место, на котором он сидел во время полета. При этом следует иметь в виду, что
- рейсы выполняются ежедневно, а длительность полета любого рейса менее суток;
- время и дата учитывается относительно одного часового пояса;
- время отправления и прибытия указывается с точностью до минуты;
- среди пассажиров могут быть однофамильцы (одинаковые значения поля name, например, Bruce Willis);
- номер места в салоне – это число с буквой; число определяет номер ряда, буква (a – d) – место в ряду слева направо в алфавитном порядке;
- связи и ограничения показаны на схеме данных.
23 дек 13, 16:54    [15335164]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на sql.Помогите.  [new]
Злой Бобр
Member

Откуда: Украина, Кривой Рог
Сообщений: 3594
select DISTINCT Company.name as company,
sum(
 SELECT CASE WHEN time_dep>=time_arr THEN time_arr-time_dep+1440 
 ELSE time_arr-time_dep END dur 
from
(
 SELECT DATEPART(hh, time_in)*60 + DATEPART(mi, time_in) time_arr, DATEPART(hh, time_out)*60 + DATEPART(mi, time_out) time_dep) tm)as minutes 

from Company, trip, Pass_in_trip
where (company.ID_comp = trip.ID_comp) and (Pass_in_trip.trip_no=trip.trip_no)
GROUP BY Company.name

Но это навскидку, т.к. нет архива БД со схемой. Так что проверьте.
24 дек 13, 06:42    [15337199]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на sql.Помогите.  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21178
Задачи на sql-ex надо решать самостоятельно.
24 дек 13, 09:18    [15337465]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на sql.Помогите.  [new]
Alenochka17117
Member

Откуда:
Сообщений: 5
да ,есть ошибки. спасибо,я уже сделала)

select distinct Company.name as company,
(
SELECT CASE WHEN time_dep>=time_arr THEN time_arr-time_dep+1440
ELSE time_arr-time_dep END dur
from
(
SELECT DATEPART(hh, time_in)*60 + DATEPART(mi, time_in) time_arr, DATEPART(hh, time_out)*60 + DATEPART(mi, time_out) time_dep) tm)as minutes

from Company, trip, Pass_in_trip
where (company.ID_comp = trip.ID_comp) and (Pass_in_trip.trip_no=trip.trip_no)
24 дек 13, 23:42    [15342595]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на sql.Помогите.  [new]
Alenochka17117
Member

Откуда:
Сообщений: 5
Akina
Задачи на sql-ex надо решать самостоятельно.


и ,девушка,мне вот на этот сайт "с высокой колокольни".
мне задал преподаватель,от этого зависит моя оценка,и я не просила сделать задание,а исправить ошибку.я не иду там на какую то грамоту,или что там дают.
24 дек 13, 23:44    [15342605]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на sql.Помогите.  [new]
tanglir
Member

Откуда:
Сообщений: 28966
Alenochka17117
и я не просила сделать задание,а исправить ошибку
Да неужели?
Alenochka17117
Для каждой компании, перевозившей пассажиров, подсчитать время, которое провели в полете самолеты с пассажирами.
Вывод: название компании, время в минутах.
это задание

Alenochka17117
мне вот на этот сайт "с высокой колокольни".
мне задал преподаватель
такой, значит, у вас преподаватель
даже названия полей не может поменять, чтобы студентов потом на форумах в скл-экс не тыкали... а может, как раз поэтому и не меняет
PS. Убрали групбай, оставили дистинкт, а надо было наоборот.
25 дек 13, 07:01    [15343222]     Ответить | Цитировать Сообщить модератору
Все форумы / Вопрос-Ответ Ответить