Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Вопрос-Ответ Новый топик    Ответить
 Помогите решить 3 задания с сайта www.sql-ex.ru для сдачи лабораторной работы  [new]
akafs
Member

Откуда:
Сообщений: 1
Ни как не могу решить 3 задания из раздела Упражнения по SQL–SELECT (обучающий этап, выбор СУБД):
Задание 75
Для каждого корабля из таблицы Ships указать название ближайшего по времени сражения из таблицы Battles,
в котором корабль мог бы участвовать после спуска на воду. Если год спуска на воду неизвестен, взять последнее по времени сражение.
Если нет сражения, произошедшего после спуска на воду корабля, вывести NULL вместо названия сражения.
Замечание. Считать, что корабль может участвовать в сражении, которое произошло в год спуска на воду корабля.
Вывод: имя корабля, год спуска на воду, название сражения

Задание 99
Рассматриваются только таблицы Income_o и Outcome_o. Известно, что прихода/расхода денег в воскресенье не бывает.
Для каждой даты прихода денег на каждом из пунктов определить дату инкассации по следующим правилам:
1. Дата инкассации совпадает с датой прихода, если в таблице Outcome_o нет записи о выдаче денег в эту дату на этом пункте.
2. В противном случае - первая возможная дата после даты прихода денег, которая не является воскресеньем и в Outcome_o не отмечена выдача денег сдатчикам вторсырья в эту дату на этом пункте.
Вывод: пункт, дата прихода денег, дата инкассации.

Задание 108
Реставрация экспонатов секции "Треугольники" музея ПФАН проводилась согласно техническому заданию. Для каждой записи таблицы utb малярами подкрашивалась сторона любой фигуры, если длина этой стороны равнялась b_vol.
Найти окрашенные со всех сторон треугольники, кроме равносторонних, равнобедренных и тупоугольных.
Для каждого треугольника (но без повторений) вывести три значения X, Y, Z, где X - меньшая, Y - средняя, а Z - большая сторона.

Краткую схему и краткую информацию по каждому из заданий не стал вставлять из-за большого объема.
27 мар 14, 17:29    [15796337]     Ответить | Цитировать Сообщить модератору
 Re: Помогите решить 3 задания с сайта www.sql-ex.ru для сдачи лабораторной работы  [new]
miksoft
Member

Откуда:
Сообщений: 37457
Извините, но у нас не принято выкладывать решения задач с сайта www.sql-ex.ru.

Если покажете свое решение, возможно, вам подскажут как его скорректировать.
27 мар 14, 17:58    [15796547]     Ответить | Цитировать Сообщить модератору
 Re: Помогите решить 3 задания с сайта www.sql-ex.ru для сдачи лабораторной работы  [new]
Злой Бобр
Member

Откуда: Украина, Кривой Рог
Сообщений: 3418
akafs,

У вас 3 варианта:
- купить лабу на месте
- сделать самостоятельно
- пойти в ветку Работа и озвучить бюджет

P.S.
Лично я считаю что задания там несложные и их можно абсолютно спокойно решать. Больших знаний вы неполучите, но закрепить базовые самое оно.
27 мар 14, 18:21    [15796678]     Ответить | Цитировать Сообщить модератору
 Re: Помогите решить 3 задания с сайта www.sql-ex.ru для сдачи лабораторной работы  [new]
Dmitry_Cheb
Member

Откуда:
Сообщений: 2
подскажите в чем моя ошибка... на основной базе рузультат правильный а на проверочной нет... вроде все предусмотрел...:

SELECT	 distinct s.name
		,s.launched
		, CASE  when b.name is not null and s.launched is not null then b.name
				when b.name is null and s.launched is not null then (select b.name 
										from Battles b
										where b.date = (select MIN(date) from Battles where DATEPART(YYYY,b.date) >= s.launched ))
				when b.name is null and s.launched is null then (select b.name 
										from Battles b
										where b.date = (select max(date) from Battles))
				else NULL 
		  END
FROM Ships s 
	Left join Battles b
	ON DATEPART(YYYY,b.date) = s.launched
28 июл 14, 12:47    [16365663]     Ответить | Цитировать Сообщить модератору
 Re: Помогите решить 3 задания с сайта www.sql-ex.ru для сдачи лабораторной работы  [new]
Dmitry_Cheb
Member

Откуда:
Сообщений: 2
кстати пытаюсь решить задание № 75

Dmitry_Cheb
подскажите в чем моя ошибка... на основной базе рузультат правильный а на проверочной нет... вроде все предусмотрел...:

SELECT	 distinct s.name
		,s.launched
		, CASE  when b.name is not null and s.launched is not null then b.name
				when b.name is null and s.launched is not null then (select b.name 
										from Battles b
										where b.date = (select MIN(date) from Battles where DATEPART(YYYY,b.date) >= s.launched ))
				when b.name is null and s.launched is null then (select b.name 
										from Battles b
										where b.date = (select max(date) from Battles))
				else NULL 
		  END
FROM Ships s 
	Left join Battles b
	ON DATEPART(YYYY,b.date) = s.launched
28 июл 14, 12:48    [16365674]     Ответить | Цитировать Сообщить модератору
 Re: Помогите решить 3 задания с сайта www.sql-ex.ru для сдачи лабораторной работы  [new]
Электрослабость
Member

Откуда: СПб
Сообщений: 564
На сайте sql-ex.ru есть раздел "Помощь\Запрос в поддержку".
Как правило, они помогают и наставляют на правильный путь по присланному решению.
Но просят не публиковать ни условия задач, ни решения на сторонних ресурсах.
28 июл 14, 15:17    [16366709]     Ответить | Цитировать Сообщить модератору
Все форумы / Вопрос-Ответ Ответить