С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/26: Рейтинг темы: голосов - 26, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 106

Создание запросов на SQL

17.01.2013, 15:41. Показов 5052. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с запросами!
Найти такие рейсы, на которых используется только один тип автобуса.
Для указанного рейса показать время и расстояние прохождения от начального до
конечного пункта; от пункта A до пункта B.
Найти станции, через которые проходит максимальное число рейсовых автобусов
сама база создана нужно реализовать запросы!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.01.2013, 15:41
Ответы с готовыми решениями:

Создание запросов в MS SQL
Всем Привет. Помогите, пож-та усовершенствовать запрос. (исключить повторения.) есть таблица Taksit CREATE TABLE ( INT ...

Создание запросов на языке SQL
http://dl2.joxi.net/drive/0001/1288/95496/141125/cb65f86f81.png 1. Посчитать количество товаров, которые отгружались хотя бы раз на...

Создание запросов баз данных в MS SQL Server
КТО МОЖЕТ ПОЖАЛУЙСТА ПОМОГИТЕ СДЕЛАТЬ ЛАБУ. Создание запросов в SQL Вариант № 7 — База данных видео проката 1.Сотрудники (Код...

45
 Аватар для Devil_FoX
168 / 142 / 1
Регистрация: 01.04.2010
Сообщений: 474
17.01.2013, 15:54
ответ напрашивается только один:
Поди туда - не знаю куда,
Принеси то - не знаю что
Связи таблиц в студию и ~ какие данные в этих таблицах
0
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 106
17.01.2013, 15:57  [ТС]
create table "Автобусы"
(
"код автобуса" number(3) not null constraint pk_avto primary key,
"номер автобуса" char(15) not null constraint uk_avto unique
)

create table "Маршруты"
(
"код маршрута" number(3) not null constraint pk_ras primary key,
"место отправления" char(15) not null,
"промежуточнный пункт" char(50) not null,
"место прибытия" char(15) not null,
"расстояние" FLOAT NOT NULL
)

create table "Билеты"
(
"код билета" number(3) not null constraint pk_b primary key,
"код расписания" number(3) not null constraint fk_ra references "Расписание"("код расписания"),
"стоимость билета" number(20) not null
)

create table "Места"
(
"код места" number(3) not null constraint pk_kl primary key,
"код автобуса" number(3) not null constraint fk_klavt references "Автобусы"("код автобуса"),
"место" number(3) not null
)


create table "Расписание"
(
"код расписания" number(3) not null constraint pk_rasp primary key,
"код маршрута" number(3) not null constraint fk_mar references "Маршруты"("код маршрута"),
"дата и время отправления" timestamp not null,
"дата и время прибытия" timestamp not null,
"состояние" char(20)
)

create table "Пассажиры"
(
"код пассажира" number(3) not null constraint pk_pas primary key,
"фамилия" char(20) not null,
"имя" char(20) not null,
"отчество" char(20) not null
)

create table "Посадочная ведомость"
(
"код пос.вед." number(3) not null constraint pk_posv primary key ,
"код расписания" number(3) not null constraint fk_raspis references "Расписание" ("код расписания"),
"код пассажира" number(3) not null constraint fk_pasv references "Пассажиры" ("код пассажира"),
"дата покупки билета" date not null,
"дата возврата билета" date ,
"код автобуса" number(3) constraint fk_avtob references "Автобусы" ("код автобуса"),
"номер билета" number(3) not null constraint fk_pasbil references "Билеты"("код билета"),
"код места" number(3) constraint fk_mesto references "Места"("код места")
)
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
17.01.2013, 21:25
Цитата Сообщение от vad505 Посмотреть сообщение
Найти такие рейсы, на которых используется только один тип автобуса.
рейс - это что? и что такое тип автобуса?
предположим, что рейс - это маршрут, а тип автобуса - номер автобуса
(много разных номерных знаков ходят по маршруту с одним номером автобуса):
найти маршруты, на которых только один номер автобуса
T-SQL
1
2
3
4
5
6
7
select m.[код маршрута]
   from Маршруты m
   join Расписание r on r.[код маршрута]=m.[код маршрута]
   join [Посадочная ведомость] p on p.[код расписания]=r.[код расписания]
   join Автобусы a on a.[код автобуса]=p.[код автобуса]
   group by m.[код маршрута]
   having COUNT(distinct a.[номер автобуса])=1
Для указанного рейса показать время и расстояние прохождения от начального до
конечного пункта; от пункта A до пункта B.
в базе отсутствует информация о пунктах маршрутов, поэтому второй пункт просчитать не удастся.
Для первого пункта тоже неясно: разное время отправления показывает разную длительность маршрута (пробки)
Можно отобрать все неповторяющиеся варианты:
T-SQL
1
2
3
4
5
select distinct 
      m.[код маршрута], r.[дата и время прибытия]-r.[дата и время отправления] Длительность, m.расстояние
   from Маршруты m
   join Расписание r on r.[код маршрута]=m.[код маршрута]
   where m.[код маршрута]=1
Найти станции, через которые проходит максимальное число рейсовых автобусов
первые 5 наиболее популярных станций:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
with link as(
   select 
      a.[номер автобуса], m.[место отправления], m.[место прибытия]
   from Автобусы a
   join [Посадочная ведомость] p on p.[код автобуса]=a.[код автобуса]
   join Расписание r on r.[код расписания]=p.[код расписания]
   join Маршруты m on m.[код маршрута]=r.[код маршрута]
   )
select top 5 * 
from (
   select u.Станция, SUM(u.[Число рейсов]) [Число рейсов]
   from (
      select l.[место отправления] Станция, COUNT(distinct l.[номер автобуса]) [Число рейсов]
         from link l group by l.[место отправления]
      union
      select l.[место прибытия], COUNT(distinct l.[номер автобуса]) 
         from link l group by l.[место прибытия]
      ) u
   group by u.Станция
   ) s
order by s.[Число рейсов] desc, s.Станция
0
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 106
18.01.2013, 12:14  [ТС]
спасибо!

Добавлено через 3 часа 44 минуты
cygapb-007 можно задать вопрос?
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
18.01.2013, 13:59
ась?
0
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 106
18.01.2013, 14:01  [ТС]
select m.[код маршрута]
from Маршруты m
join Расписание r on r.[код маршрута]=m.[код маршрута]
join [Посадочная ведомость] p on p.[код расписания]=r.[код расписания]
join Автобусы a on a.[код автобуса]=p.[код автобуса]
group by m.[код маршрута]
having COUNT(distinct a.[номер автобуса])=1

что означают буквы m,r,p,a?
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
18.01.2013, 14:02
Кстати, отпиши, правильно ли отрабатывают запросы, а то чисто по схеме, без отладки - могут и грабли вылезти

Добавлено через 40 секунд
алиасы задействованных таблиц, для упрощения ссылок на них
0
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 106
18.01.2013, 14:08  [ТС]
1 запрос
select m.[код маршрута]
ERROR at line 1:
ORA-01747: invalid user.table.column, table.column, or column specification

Добавлено через 4 минуты
во всех запросов одно и тоже
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
18.01.2013, 14:12
поменяй [ и ] на "
у меня в SQL 2008 R2 нормально принимает
0
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 106
18.01.2013, 14:15  [ТС]
join "Посадочная ведомость" p on p."код расписания"=r."код расписания"
*

ERROR at line 4:
ORA-00942: table or view does not exist
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
18.01.2013, 14:44
Цитата Сообщение от vad505 Посмотреть сообщение
select m.[код маршрута]
from Маршруты m
join Расписание r on r.[код маршрута]=m.[код маршрута]
join [Посадочная ведомость] p on p.[код расписания]=r.[код расписания]
join Автобусы a on a.[код автобуса]=p.[код автобуса]
group by m.[код маршрута]
having COUNT(distinct a.[номер автобуса])=1

что означают буквы m,r,p,a?
без алиасов выглядит так:
T-SQL
1
2
3
4
5
6
7
select "Маршруты"."код маршрута"
   from "Маршруты"
   join "Расписание" on "Расписание"."код маршрута"="Маршруты"."код маршрута"
   join "Посадочная ведомость" on "Посадочная ведомость"."код расписания"="Расписание"."код расписания"
   join "Автобусы" on "Автобусы"."код автобуса"="Расписание"."код автобуса"
   group by "Маршруты"."код маршрута"
   having COUNT(distinct "Автобусы"."номер автобуса")=1
0
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 106
18.01.2013, 14:46  [ТС]
join "Посадочная ведомость" on "Посадочная ведомость"."код расписания"="Расписание"."код расписания"
*

ERROR at line 4:
ORA-00904: "Расписание"."код автобуса": invalid identifier
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
18.01.2013, 14:47
если по правилам, то перед каждым JOIN нужно указать умалчиваемое INNER:
T-SQL
1
2
3
...
INNER JOIN ...
...
Добавлено через 49 секунд
хмм... что-то с синтаксисом...
ты в чем запускаешь?
0
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 106
18.01.2013, 14:49  [ТС]
ORACLE iSQL*Plus
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
18.01.2013, 14:56
с ораклом не сталкивался, хз, какой там синтаксис, сорь
кстати, with там тоже скорее всего не сработает, из последнего запроса
0
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 106
18.01.2013, 14:57  [ТС]
Ладно все равно спасибо!
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
18.01.2013, 15:28
попробуй логику перенести в синтаксис)

Добавлено через 31 минуту
Цитата Сообщение от vad505 Посмотреть сообщение
join "Посадочная ведомость" on "Посадочная ведомость"."код расписания"="Расписание"."код расписания"
*

ERROR at line 4:
ORA-00904: "Расписание"."код автобуса": invalid identifier
сорь, при замене алиасов ошибку внес, вместо
join "Автобусы" on "Автобусы"."код автобуса"="Расписание"."код автобуса"
должно быть
T-SQL
1
   join "Автобусы" on "Автобусы"."код автобуса"="Посадочная ведомость"."код автобуса"
0
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 106
18.01.2013, 15:31  [ТС]
работает
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
18.01.2013, 15:39
а с алиасами не работало?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.01.2013, 15:39
Помогаю со студенческими работами здесь

Как можно получить код SQL-запросов из лога транзакций ldf MS SQL Server2k?
Хая! Это вообще возможно??

Объединение sql запросов
Всем привет. У меня есть 2 таблицы (Expences, Profit) такого формата: Expences ID Date1 Summa Profit

Язык запросов SQL
Кто поможет разобраться: как сделать вот это то есть реализовать 1. Язык запросов SQL: Создание БД и Таблиц. Примеры 2. Язык запросов...

Составление запросов SQL
Ребят,выручайте. Изучаю язык SQL, дали задание написать запросы Представьте 2 таблицы: A-справочник подразделений (ИД подразделения ...

Создание sql-запросов
Доброго времени суток. Есть таблица производителей MF_ID, MF_NAME


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru