Обсуждение:SQL-запросы к экзамену по СПАСОИ (10 семестр): различия между версиями

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество
Перейти к навигации Перейти к поиску
м (→‎Билеты №№ 1 и 30: неправильные запросы)
Строка 28: Строка 28:
:# в 1 запросе по заданию нужны ''номера'' поставщиков, они и выдаются. В 30 запросе по заданию нужны ''имена'' поставщиков, они и выдаются.
:# в 1 запросе по заданию нужны ''номера'' поставщиков, они и выдаются. В 30 запросе по заданию нужны ''имена'' поставщиков, они и выдаются.
:Или что вы имели в виду? [[Участник:ILobster|iLobster]] ([[Обсуждение участника:ILobster|обсуждение]]) 23:27, 20 июня 2013 (MSK)
:Или что вы имели в виду? [[Участник:ILobster|iLobster]] ([[Обсуждение участника:ILobster|обсуждение]]) 23:27, 20 июня 2013 (MSK)
:: А, я понял, вы написали свои версии запросов и пишете о них? Смотрите, запрос для билета №1 вы не дописали - имя поставщика брать неоткуда. А запрос №30 у вас возвращает вот что:
  nomer_postavshika
-------------------
  S5
  S17
  S8
  S1
  S9
  S13
  S3
  S11
  S7
  S18
  S12
  S6
  S4
  S14
  S15
  S10
(16 rows)
:: Я убрал оба варианта в комментарии. [[Участник:ILobster|iLobster]] ([[Обсуждение участника:ILobster|обсуждение]]) 23:36, 20 июня 2013 (MSK)

Версия от 22:36, 20 июня 2013

Билет №11

Сначала был такой запрос:

SELECT gorod, sost
FROM (
      SELECT gorod, SUM(sostoyanie) AS sost, SUM(SPJ.kolichestvo)
      FROM spasoi_ekz.spj, spasoi_ekz.s
      WHERE S.nomer_postavshika = SPJ.nomer_postavshika
      GROUP BY S.gorod HAVING SUM(SPJ.kolichestvo) > 1000
     ) A;

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

Я убрал его в комментарии и написал новый.

Хипстерство в программировании

Поясните за "хипстерство в программировании": каким образом JOIN ... ON под него попал? iLobster (обсуждение) 22:26, 20 июня 2013 (MSK)

Билеты №№ 1 и 30

Мне кажется, код будет выдавать номер (и имя) поставщика S2. Не уверен, что это не нужно, но, по-моему, это довольно бесполезно.

не могу сказать, что всё понял из сказанного, но:
  1. что будет выдавать код - приведено для каждого запроса в блоке Результат. Все запросы проверялись на реальной БД;
  2. в 1 запросе по заданию нужны номера поставщиков, они и выдаются. В 30 запросе по заданию нужны имена поставщиков, они и выдаются.
Или что вы имели в виду? iLobster (обсуждение) 23:27, 20 июня 2013 (MSK)
А, я понял, вы написали свои версии запросов и пишете о них? Смотрите, запрос для билета №1 вы не дописали - имя поставщика брать неоткуда. А запрос №30 у вас возвращает вот что:
 nomer_postavshika
-------------------
 S5
 S17
 S8
 S1
 S9
 S13
 S3
 S11
 S7
 S18
 S12
 S6
 S4
 S14
 S15
 S10
(16 rows)
Я убрал оба варианта в комментарии. iLobster (обсуждение) 23:36, 20 июня 2013 (MSK)