1. Вывести самое короткое время проезда по заданному наименованием маршруту и номер автомобиля, который поставил рекорд.
SELECT name, time_out, time_in, number
FROM routes, journal, auto
WHERE routes.idd = journal.route_id AND routes.name = 'NewCity'
AND journal.auto_id = auto.idd;
- Но как посчитать самое короткое время проезда?
Вставка данных
• однотабличная вставка
2. Добавить водителю с заданной фамилией два автомобиля
INSERT INTO auto (pers_id)
SELECT idd FROM personnel WHERE family = 'Skamejkin';
- Вот так работает, но добавляет только Id водителя, а как добавить ещё марку машину, цвет, номер? И как добавить 2 машины сразу?
13 марта 2010 в 22:04
Тоесть?
13 марта 2010 в 22:04
declare @id1 int, @id2 int
select @id1=2345, @id2 = 46232
select @id1, @id2
13 марта 2010 в 14:05
переменные с идентификаторами машин.
13 марта 2010 в 13:02
А что такое @id1, @id2?
12 марта 2010 в 23:03
>> Вывести самое короткое время проезда по заданному наименованием маршруту и номер автомобиля, который поставил рекорд.
select top 1 name, time_out, time_in, number
from routes
inner join journal on journal.route_id = routes.idd
inner join auto on auto.idd = journal.auto_id
where routes.name = 'NewCity'
order by time_out – time_in
для того, чтобы делалось быстро, заведите индексированное вычисляемое поле со значением разности
>> Добавить водителю с заданной фамилией два автомобиля
insert auto (pers_id, марка_машины, цвет, госномер)
select idd, марка_машины, цвет, госномер
from personnel, машины
where family = 'Skamejkin' and машины.машина_id in (@id1, @id2)
12 марта 2010 в 22:04
Что за БД?
Для оракла так:
1. Выбираешь min(time_out – time_in) as min_time. И оборачиваешь сверху запрос с условием time_out – time_in = min_time. Как-то так
2.1: Через запятую в селекте перечисляешь поля.
2.2: Попробуй
SELECT p.idd, dummy."марку машину", dummy.цвет,dummy.номер FROM personnel p,
(select марку машину, цвет, номер from dual
union
select марку машину, цвет, номер from dual) dummy
WHERE p.family = 'Skamejkin'
Для других БД запрос из фиктивной таблицы выглядит иначе, но в любом случае отдельно формируешь набор данных для каждой машины и пересекаешь с водителем (т.к. водитель у тебя один, то катит картежное соединение).
12 марта 2010 в 22:04
Microsoft SQL