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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2013, 18:30   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну какая ошибка можете сюда написать, дословно. Вечером посмотрю
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.12.2013, 20:11   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
SELECT C.name,
    SUM(X.CountFlight*(CASE WHEN T.time_in>=T.time_out THEN DATEDIFF(n,T.time_out,T.time_in) ELSE 1440-DATEDIFF(n,T.time_in,T.time_out) END)) AS TimeMin
  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 BY U.trip_no) X
  WHERE T.trip_no=X.trip_no AND T.ID_comp=C.ID_comp
  GROUP BY C.name,C.ID_comp
А вообще отлаживать прямо на том сайте весьма неудобно. Свою базу иметь, создавать таблички с небольшой информацией и гонять до измождения. А то ни нормальных сообщений об ошибках, данных не видно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

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

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
SELECT C.name,
    SUM(X.CountFlight*(CASE WHEN T.time_in>=T.time_out THEN DATEDIFF(n,T.time_out,T.time_in) ELSE 1440-DATEDIFF(n,T.time_in,T.time_out) END)) AS TimeMin
  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 BY U.trip_no) X
  WHERE T.trip_no=X.trip_no AND T.ID_comp=C.ID_comp
  GROUP BY C.name,C.ID_comp
А вообще отлаживать прямо на том сайте весьма неудобно. Свою базу иметь, создавать таблички с небольшой информацией и гонять до измождения. А то ни нормальных сообщений об ошибках, данных не видно

Спасибо,большое ,очень выручили))))))))это просто задумка преподавателя..
Alenochka1717 вне форума Ответить с цитированием
Старый 24.12.2013, 11:18   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
это просто задумка преподавателя
Задумка хорошая и на сайте задания хорошие для обучения SQL. Просто они не доработали подсветку слов в запросе, систему сообщений об ошибках и прочее. А это здорово мешает в отладке. Получается, что запрос набираешь как в примитивном текстовом редакторе. В первом случае при наборе забыл BY набрать в GROUP BY и не в одном месте. И выдало сообщение типа 'ошибка возле P'. Нормально? Хотя бы номер строки еще
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.12.2013, 11:36   #15
Shtoket
Новичок
Джуниор
 
Регистрация: 25.12.2013
Сообщений: 2
По умолчанию

Краткая информация о базе данных "Аэрофлот":

Схема БД состоит из четырех отношений:
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) – место в ряду слева направо в алфавитном порядке;
- связи и ограничения показаны на схеме данных.

Задание :
Определить имена разных пассажиров, которые летали
только между двумя городами (туда и/или обратно).


· Справка по теме:
Предложение GROUP BY
Предложение HAVING
Объединение
Явные операции соединения
Shtoket вне форума Ответить с цитированием
Старый 25.12.2013, 11:37   #16
Shtoket
Новичок
Джуниор
 
Регистрация: 25.12.2013
Сообщений: 2
По умолчанию

select name,pass_in_trip.ID_psg
from passenger inner join pass_in_trip
ON passenger.ID_psg=pass_in_trip.ID_ps g

дальше че то не идет,может кто знает??
Shtoket вне форума Ответить с цитированием
Старый 25.12.2013, 12:29   #17
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
дальше че то не идет,может кто знает
Знаю, что ТС чего-то делает, наверно по принуждению бедняга, а SQL осваивать не хочет или не может. Если не можешь - а оно тебе нужно?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.12.2013, 20:20   #18
Alenochka1717
 
Регистрация: 23.12.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Знаю, что ТС чего-то делает, наверно по принуждению бедняга, а SQL осваивать не хочет или не может. Если не можешь - а оно тебе нужно?
это просто всё один и тот же преподаватель(( нам по одному заданию дал для зачета.вот я и ему посоветовала тебя,умного парня)
Alenochka1717 вне форума Ответить с цитированием
Старый 25.12.2013, 21:24   #19
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ладно, если кавалеру, то напишу за него Да и из категории парней давненько я вышел, так что посоветовала своему кавалеру дядьку, возможно не совсем тупого
Код:
SELECT U.Name
  FROM
    (SELECT P.ID_psg,P.Name,T.town_from AS town FROM Passenger P,Pass_in_trip A,Trip T WHERE A.ID_psg=P.ID_psg AND A.trip_no=T.trip_no
     UNION
     SELECT P.ID_psg,P.Name,T.town_to AS town FROM Passenger P,Pass_in_trip A,Trip T WHERE A.ID_psg=P.ID_psg AND A.trip_no=T.trip_no) U
  GROUP BY U.ID_psg,U.Name
  HAVING COUNT(*)=2
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.12.2013, 22:50   #20
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