Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2017, 08:57   #1
Евгений_93
Пользователь
 
Регистрация: 06.06.2017
Сообщений: 41
По умолчанию Задачи по sql (Ships, Battles)

и снова здравствуйте!
Подскажите пожалуйста, не понимаю условия задачи можете разъяснить?
Потопить в следующем сражении суда, которые в первой своей битве были повреждены и больше не участвовали ни в каких сражениях. Если следующего сражения для такого судна не существует в базе данных, не вносить его в таблицу Outcomes.

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

схема базы во вложении, прошу не решить за меня, а пояснить условия
Изображения
Тип файла: gif ships.gif (6.8 Кб, 158 просмотров)
Евгений_93 вне форума Ответить с цитированием
Старый 09.06.2017, 09:05   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Найти все суда которые в первом своем сражении были повреждены и каждому из них в следующем сражении с их участием, если оно было, сделать бум
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.06.2017, 09:14   #3
Евгений_93
Пользователь
 
Регистрация: 06.06.2017
Сообщений: 41
По умолчанию

select *
from Outcomes
where result = 'damaged'
таким образом мы найдем все суда которые были повреждены, а как понять количество его сражений есть мысль подзапросом сделать
Евгений_93 вне форума Ответить с цитированием
Старый 09.06.2017, 09:16   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Не просто повреждены, а в первом сражении с их участием. А количество сражений не нужно, нужно найти следующее если оно было
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.06.2017, 09:28   #5
Евгений_93
Пользователь
 
Регистрация: 06.06.2017
Сообщений: 41
По умолчанию

а с помощью чего это сделать? не совсем понимаю((
Евгений_93 вне форума Ответить с цитированием
Старый 09.06.2017, 09:29   #6
Евгений_93
Пользователь
 
Регистрация: 06.06.2017
Сообщений: 41
По умолчанию

надо получается соединять с таблицей battles?
Евгений_93 вне форума Ответить с цитированием
Старый 09.06.2017, 09:36   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Евгений_93 Посмотреть сообщение
получается соединять с таблицей battles?
обязательно. именно в ней и хранится дата сражения.

Цитата:
в первом сражении
группировка по ship и min([date]) даст дату первого сражения, при этом из таблицы Outcomes можно получить (выбрать) нужный результат сражения.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.06.2017, 09:49   #8
Евгений_93
Пользователь
 
Регистрация: 06.06.2017
Сообщений: 41
По умолчанию

select o.ship, min(b.date) date
from Battles b, Outcomes o
where b.name = o.battle
and o.result = 'damaged'
group by o.ship, date
Евгений_93 вне форума Ответить с цитированием
Старый 09.06.2017, 09:54   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Группировка по дате не нужна, а o.result = 'damaged' обрежет все сражения без повреждения. А как быть с первым сражением?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.06.2017, 10:28   #10
Евгений_93
Пользователь
 
Регистрация: 06.06.2017
Сообщений: 41
По умолчанию

[QUOTE=Аватар;1686002]Группировка по дате не нужна, а o.result = 'damaged' обрежет все сражения без повреждения. А как быть с первым сражением?[/QUOT
я конкретно запутался(
Евгений_93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL: Статистика : годы и сотрудники, решение задачи Geometry SQL, базы данных 2 19.10.2014 09:48
задачи sql kolyan4 Фриланс 8 22.01.2011 23:53
Задачи на SQL (Oracle) soleil@mmc SQL, базы данных 1 18.01.2010 17:55
Помогите, пожалуйста, с написанием задачи в Transact SQL Student'ochka SQL, базы данных 2 24.05.2009 17:21