Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2013, 16:09   #1
Alenochka1717
 
Регистрация: 23.12.2013
Сообщений: 9
По умолчанию Запрос на sql.Помогите подправить

Здравствуйте.Мог бы кто нибудь помочь? вот не могу ни как сложить минуты и сгруппировать компании.
вот тут есть мой результат (слева),и то что должно получиться(справа)
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)
Alenochka1717 вне форума Ответить с цитированием
Старый 23.12.2013, 16:42   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Алена, вы бы структуру таблиц показали, расписав, что в поля пишется. Да и не бывает просто sql, а бывает sql-синтаксис конкретной СУБД
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.12.2013, 16:51   #3
Alenochka1717
 
Регистрация: 23.12.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Алена, вы бы структуру таблиц показали, расписав, что в поля пишется. Да и не бывает просто sql, а бывает sql-синтаксис конкретной СУБД

Схема БД состоит из четырех отношений:
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) – место в ряду слева направо в алфавитном порядке;
- связи и ограничения показаны на схеме данных.
Alenochka1717 вне форума Ответить с цитированием
Старый 23.12.2013, 17:36   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

По-скольку не признались какая СУБД, написал для MS SQL
Код:
SELECT C.name,
    SUM(ROUND(U.CountFlight*(CASE WHEN T.time_in>T.time_out THEN T.time_in-T.time_out ELSE T.time_in-T.time_out+1)*1440,0))
  FROM Trip T,Company C,
    (SELECT U.trip_no,COUNT(*) AS CountFlight
      FROM (SELECT P.trip_no,P.date FROM Pass_in_trip P GROUP BY P.trip_no,P.date) U
      GROUP U.trip_no) X
  WHERE T.trip_no=X.trip_no AND T.ID_comp=C.ID_comp
  GROUP C.ID_comp,C.name
Структура таблиц дубовая
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.12.2013, 17:54   #5
Alenochka1717
 
Регистрация: 23.12.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
По-скольку не признались какая СУБД, написал для MS SQL
Код:
SELECT C.name,
    SUM(ROUND(U.CountFlight*(CASE WHEN T.time_in>T.time_out THEN T.time_in-T.time_out ELSE T.time_in-T.time_out+1)*1440,0))
  FROM Trip T,Company C,
    (SELECT U.trip_no,COUNT(*) AS CountFlight
      FROM (SELECT P.trip_no,P.date FROM Pass_in_trip P GROUP BY P.trip_no,P.date) U
      GROUP U.trip_no) X
  WHERE T.trip_no=X.trip_no AND T.ID_comp=C.ID_comp
  GROUP C.ID_comp,C.name
Структура таблиц дубовая
говорит ошибка
Alenochka1717 вне форума Ответить с цитированием
Старый 23.12.2013, 17:56   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Кому говорит? Мне не слышно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.12.2013, 17:58   #7
Alenochka1717
 
Регистрация: 23.12.2013
Сообщений: 9
По умолчанию

сайт.хорошо.

Последний раз редактировалось Alenochka1717; 23.12.2013 в 18:27.
Alenochka1717 вне форума Ответить с цитированием
Старый 23.12.2013, 18:26   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Я в нем вообще не зарегистрирован. Сюда объясняйте
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.12.2013, 18:27   #9
Alenochka1717
 
Регистрация: 23.12.2013
Сообщений: 9
По умолчанию

Я делаю задание
вот смогла только сделать предыдущий код. а сложить минуты не могу.
куда вставить sum? или какой там еще код нужен.

Последний раз редактировалось Alenochka1717; 24.12.2013 в 11:17.
Alenochka1717 вне форума Ответить с цитированием
Старый 23.12.2013, 18:29   #10
Alenochka1717
 
Регистрация: 23.12.2013
Сообщений: 9
По умолчанию

я уже все перепробовала..ошибка и всё.((
Alenochka1717 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите составить SQL запрос!!!! MAKSA БД в Delphi 12 07.08.2009 11:12
Помогите,пожалуйста написать SQL-запрос!!! lola8669 SQL, базы данных 3 09.02.2009 19:30
Помогите создать SQL запрос Rain9 SQL, базы данных 5 25.11.2008 08:54
Помогите написать SQL запрос Vedrus SQL, базы данных 1 22.07.2008 13:21
Несложный SQL запрос. Помогите, пожалуйста novicer БД в Delphi 2 10.05.2007 16:21