Обсуждение:SQL-запросы к экзамену по СПАСОИ (10 семестр)
Билет №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 запросе по заданию нужны номера поставщиков, они и выдаются. В 30 запросе по заданию нужны имена поставщиков, они и выдаются.
- Или что вы имели в виду? iLobster (обсуждение) 23:27, 20 июня 2013 (MSK)
- А, я понял, вы написали свои версии запросов и пишете о них? Смотрите, запрос для билета №30 вы не дописали - имя поставщика брать неоткуда. А запрос №1 у вас возвращает вот что:
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)