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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2017, 17:29   #21
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
админ сайта sql-ex.ru пишет
Это все сильно упрощает
Нашли все участвующие в битвах только по разу
Код:
SELECT O.ship,MAX(O.result) AS result,MAX(B.[date]) AS [date]
  FROM Outcomes O, Battles B WHERE O.battle=B.name GROUP BY O.ship HAVING COUNT(*)=1
Оствили только поврежденные и прицепили дату следующего сражения или NULL если нет
Код:
SELECT U.*,
    (SELECT MIN(B1.[date]) FROM Battles B1 WHERE B1.[date]>U.[date]) AS datenext
  FROM
    (SELECT O.ship,MAX(O.result) AS result,MAX(B.[date]) AS [date]
       FROM Outcomes O, Battles B WHERE O.battle=B.name GROUP BY O.ship HAVING COUNT(*)=1) AS U
  WHERE U.result='damaged'
И, наконец, Insert
Код:
INSERT INTO Outcomes
  SELECT V.ship,B2.battle,'чего-то-типа-уничтожен'
    FROM Battles B2,
      (SELECT U.ship,U.datenext
           (SELECT MIN(B1.[date]) FROM Battles B1 WHERE B1.[date]>U.[date]) AS datenext
         FROM
           (SELECT O.ship,MAX(O.result) AS result,MAX(B.[date]) AS [date]
              FROM Outcomes O, Battles B WHERE O.battle=B.name GROUP BY O.ship HAVING COUNT(*)=1) AS U
         WHERE U.result='damaged') V
    WHERE B2.[date]=V.datenext
Естесно не отлаживал, запросто мог накосячить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.06.2017, 17:32   #22
Евгений_93
Пользователь
 
Регистрация: 06.06.2017
Сообщений: 41
По умолчанию

спасибо более или менее понятно, буду думать_))
Евгений_93 вне форума Ответить с цитированием
Старый 13.06.2017, 06:50   #23
Евгений_93
Пользователь
 
Регистрация: 06.06.2017
Сообщений: 41
По умолчанию

Здравствуйте, у вас тут бардак, и ваш запрос не работает
Евгений_93 вне форума Ответить с цитированием
Старый 13.06.2017, 07:07   #24
Евгений_93
Пользователь
 
Регистрация: 06.06.2017
Сообщений: 41
По умолчанию

Все спасибо вам большое разобрался, кое где были ошибки в полях_)) Класс! даже и не думал что так бывает спасибо_)
Евгений_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