Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
1 / 1 / 1
Регистрация: 14.02.2013
Сообщений: 62
1

Выдать номера и фамилии поставщиков, поставляющих детали для какого-либо изделия с деталью P1 в количестве, б

05.12.2014, 23:50. Показов 5126. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Суть в следующем: есть 4 таблицы
поставщики S

S1 Смит 20 Лондон
S2 Джонс 10 Париж
S3 Блейк 30 Париж
S4 Кларк 20 Лондон
S5 Адамс 30 Афины


детали P

P1 Гайка Красный 12 Лондон
P2 Болт Зеленый 17 Париж
P3 Винт Голубой 17 Рим
P4 Винт Красный 14 Лондон
P5 Кулачок Голубой 12 Париж
P6 Блюм Красный 19 Лондон

изделия J

J1;Жесткий диск;Париж
J2;Перфоратор;Рим
J3;Считыватель;Афины
J4;Принтер;Афины
J5;Флоппи-диск;Лондон
J6;Терминал;Осло
J7;Лента;Лондон

поставки SPJ

S1 P1 J1 200
S1 P1 J4 700
S2 P3 J1 400
S2 P3 J2 200
S2 P3 J3 200
S2 P3 J4 500
S2 P3 J5 600
S2 P3 J6 400
S2 P3 J7 800
S2 P5 J2 100
S3 P3 J1 200
S3 P4 J2 500
S4 P6 J3 300
S4 P6 J7 300
S5 P2 J2 200
S5 P2 J4 100
S5 P5 J5 500
S5 P5 J7 100
S5 P6 J2 200
S5 P1 J4 100
S5 P3 J4 200
S5 P4 J4 800
S5 P5 J4 400
S5 P6 J4 500


нужно выполнить один единственный запрос:
Выдать номера и фамилии поставщиков, поставляющих детали для какого-либо изделия с деталью P1 в количестве, большем, чем сред-ний объем поставок детали P1 для этого изделия.

пробывал так:
MySQL
1
2
3
4
5
6
7
8
9
SELECT s.snum
FROM s, j INNER JOIN spj ON j.jnum = spj.jnum INNER JOIN p ON spj.pnum = p.pnum;
WHERE j.Jnum = spj.jnum AND p.pnum = 'Р1';
 
и вот так тоже пробывал
SELECT snam, snum FROM s WHERE snum =(
SELECT snum FROM SPJ as t1 WHERE t1.Pnum = 'P1'
AND t1.qt = (SELECT AVG(t1.qt) FROM SPJ as t2));
WHERE t2.pnum = 'Р1' AND t2.Jnum = t1.jnum));
но выдаёт что нет записей. Заранее благодарен все за помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2014, 23:50
Ответы с готовыми решениями:

Выдать номера изделий, детали для которых поставляет каждый поставщик, поставляющий какую-либо красную деталь.
Приветствую вас форумчане. Прошу помочь с запросом. Времени мало, т. к. нужно быстрей здать. Задача...

Выдать номера изделий, для которых детали поставляются по крайней мере одним поставщиком не из того же самого города
Выдать номера изделий, для которых детали поставляются по крайней мере одним поставщиком не из того...

Найти номера всех счастливых билетов, равных кубу какого-либо натурального числа
Троллейбусный билет имеет шестизначный номер. Билет назовем "счастливым", если сумма первых трех...

Напечатать все номера счастливых билетов, которые равны квадрату какого-либо натурального числа
Доброго времени суток! Помогите, пожалуйста, решить задачу. Содержание задачи такое: "Составить...

4
1 / 1 / 1
Регистрация: 14.02.2013
Сообщений: 62
06.12.2014, 00:21  [ТС] 2
Вот sql скрипт с созданиме таблиц и наполнением данных.
Вложения
Тип файла: txt data1.txt (5.4 Кб, 61 просмотров)
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
06.12.2014, 16:51 3
а я воть так папробывал, влопп:
MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-- Выдать номера и фамилии поставщиков, 
-- поставляющих детали для какого-либо изделия с деталью P1 
-- в количестве, большем, 
-- чем сред-ний объем поставок детали P1 для этого изделия.
select Snum, Snam
from (
  select distinct Snum dSnum
  from (
    select Jnum, Snum, Pnum, sum(Qt)sumQt, avgQtP1
    from(
      select Jnum JnumP1, avg(Qt)avgQtP1
      from SPJ
      where Pnum='P1'
      group by Jnum
      )q
    join SPJ on Jnum=JnumP1
    group by Jnum, Snum, Pnum
    having sumQt>avgQtP1
    )sq
  )d
join s on Snum=dSnum;
Токмо неясно, раздельно считать детали в поставках или по ихней совокупности. Тута всем раздельно
1
1 / 1 / 1
Регистрация: 14.02.2013
Сообщений: 62
06.12.2014, 17:34  [ТС] 4
Спасибо большое! Я так думаю раздельно. Если Вам не трудно могли бы Вы мне объяснить этот запрос, так сказать на пальцах, буду очень благодарен.
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
06.12.2014, 19:44 5
svarga, я там специально оставил лишние поля - запускайте по очереди: самый вложенный запрос, потом по одному добавляйте внешние - все должно быть понятно
0
06.12.2014, 19:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2014, 19:44
Помогаю со студенческими работами здесь

Вывести поставщиков, которые поставляют красные детали
Вывести поставщиков,которые поставляют красные детали,вопрос правильно ли я написал запрос,если не...

Выбрать поставщиков НЕ из Ижевска, участвующих в максимальном количестве заказов
Здравствуйте,помогите с запросами:поставщики не из Ижевска, участвующие в максимальном количестве...

По заданным таблицам поставщики, детали, поставки получить список поставщиков
Доброго времени суток, написал программу, но где-то накосячил, прошу указать на ошибки. Также...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru