powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Задачка SQL
12 сообщений из 12, страница 1 из 1
Задачка SQL
    #39421170
mishuto-kostya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Найдите следующий рейс (или рейсы), отправляющийся после рейса с номером 50. Выведите название маршрута, день недели, часы и минуты отправления.

km_prices (расценки за километр)

class(класс автобуса)
price (цена за км для данного класса)
models (марки или модели автобусов)
cod_model (код, суррогатный ключ)
name_model (название, атрибут носит справочный характер)
places (количество мест в автобусах данной марки)
class (класс комфортности)

buses (автобусы)

cod_bus (код автобуса, возможно его инвентарный номер)
bus_number (номер ГИБДД, атрибут носит чисто справочный характер)
cod_model (марка автобуса, внешний ключ)

points (населенные пункты)

cod_point (код, суррогатный ключ)
name_point (название)
distance (расстояние от пункта отправления)

routes (маршруты)

cod_route (код, суррогатный ключ)
name_route (название маршрута)

points_routes (связь между пунктами и маршрутами)

cod_point (код пункта, внешний ключ)
cod_route (код маршрута, внешний ключ)

trips (рейсы)

cod_trip (код рейса, суррогатный ключ)
week_day (день недели)
hour (часы)
minute (минуты)
cod_route (код маршрута)
cod_bus (код автобуса, назначенного на данный рейс)
tickets (количество проданных билетов)

Пункты и маршруты имеют связь "Многие-ко-Многим" (через каждый пункт может проходить несколько маршрутов и каждый маршрут имеет несколько остановок). Для этого служит таблица-связка points_routes.
Сущность trips (рейсы) связывает сущности Маршруты и Автобусы, дополняя их такими важными атрибутами как время отправления. Здесь же фиксируется и количество проданных билетов на каждый рейс (после отправления рейса поле обнуляется).
Дни недели в trips - числа от 1 до 7, где 1 - понедельник, 2 - вторник и т.д.
Номера и марки автобусов, названия маршрутов, названия населенных пунктов уникальны
Допустимо наличие маршрутов, не используемых ни в одном рейсе. Могут быть населённые пункты, не используемые ни в одном маршруте, маршруты, в которые ещё не включены никакие пункты, автобусы, не задействованные ни в одном рейсе. Аналогично, в базе может содержаться марка автобуса, но не быть ни одного автобуса такой марки.

Я смог написать вот это
SELECT name_route, week_day, hour, minute
FROM routes INNER JOIN trips ON routes.cod_route=trips.cod_route
where (hour*60+minute+week_day*1440)=
(select min(hour*60+minute+week_day*1440) from trips where (hour*60+minute+week_day*1440)>=
(select min(hour*60+minute+week_day*1440) from trips where cod_trip=50) and cod_trip<>50 )

не могу понять, как вывести маршрут, который будет идти после последнего на текущей неделе.
Т.е. если маршрут с номером 50 будет последним в этой неделе, то нужно вывести первый на следующей
...
Рейтинг: 0 / 0
Задачка SQL
    #39421172
mishuto-kostya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Задачка SQL
    #39421175
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mishuto-kostyaрасценки за километрНе на то расценки объявляешь.
...
Рейтинг: 0 / 0
Задачка SQL
    #39421183
new_igor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
управжения по sql

случайно не оттуда задачка? уж больно стиль заданий похож.
...
Рейтинг: 0 / 0
Задачка SQL
    #39421195
mlc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mishuto-kostya,

Тебе сюда Студентам, желающим помощи , потом сюда Работа
...
Рейтинг: 0 / 0
Задачка SQL
    #39421220
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mishuto-kostya,

lag/lead
...
Рейтинг: 0 / 0
Задачка SQL
    #39421317
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вашу мать!
Ни вам "пожалуйста", нихрена..

Куда катится мир...
...
Рейтинг: 0 / 0
Задачка SQL
    #39421348
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тестировать лень. Будем считать за идею...
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
WITH
t0 AS (
  SELECT
    1 AS g,
    tp.*
  FROM
    trips tp
  UNION ALL
  SELECT
    2 AS g,
    tp.*
  FROM
    trips tp
),
t1 AS (
  SELECT
    g,
    cod_trip,
    LEAD( cod_trip ) OVER ( ORDER BY g, week_day, hour, minute ) AS cod_trip_n
  FROM
    t0
)
SELECT
  tp.*
FROM
  t1
  INNER JOIN trips tp ON (
        tp.cod_trip = t1.cod_trip_n )
WHERE
      t1.cod_trip = 50
  AND t1.g = 1
...
Рейтинг: 0 / 0
Задачка SQL
    #39421764
mishuto-kostya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
new_igor управжения по sql

случайно не оттуда задачка? уж больно стиль заданий похож.
new_igor,

с универского сайта задачка, было любопытно решить, но не осилил

envmishuto-kostya,

lag/lead
env,

простите, не знаю что это.

--Eugene--Вашу мать!
Ни вам "пожалуйста", нихрена..

Куда катится мир...
--Eugene--,

ты сюда зашел высказать свое никчемное мнение? я и раньше заметил насколько здесь гнилые люди попадаются

Руслан ДамировичТестировать лень. Будем считать за идею...

Руслан Дамирович,

не уверен, сработает ли with, не сильно понимаю систему, но спасибо за идею, попробую
...
Рейтинг: 0 / 0
Задачка SQL
    #39421776
mishuto-kostya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mlc,

Хотелось бы решить исключительно из любопытства, разобраться так сказать. Семестр тот я уже закончил давно (если нужны будут пруфы, то предоставю), а задачка осталось не решенной. На универском сайте задачу смогли решить лишь 5% отправивших, потому и стало любопытно, что там за задача. А если точнее 12 человек.
...
Рейтинг: 0 / 0
Задачка SQL
    #39421794
mishuto-kostya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот пример теста, который у меня не проходит. Запрос должен вывести строку с рейсом №4
...
Рейтинг: 0 / 0
Задачка SQL
    #39422045
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант -- добавляй сразу и маршруты на следующий понедельник
select * from trips
union all
select ..., 8 week_day from trips
where week_day=1 and cod_trip != 50
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Задачка SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]