loading..
Русский    English
15:49
листать

Упражнение 55 (подсказки и решения)

Здесь мы приводим решение, которое верно (хотя и излишне) учитывает корабли из таблицы Outcomes.

Консоль
Выполнить
  1. SELECT t1.class, MIN(b.launched)
  2. FROM (SELECT name, class
  3.       FROM Ships
  4.       UNION
  5.       SELECT ship, class
  6.       FROM Outcomes JOIN
  7.            Classes ON ship = class AND
  8.                       ship NOT IN(SELECT name
  9.                                   FROM Ships
  10.                                   )
  11.       ) t1 LEFT JOIN
  12.       Ships b ON t1.class = b.class
  13. GROUP BY t1.class;

Единственная ошибка этого решения заключается в том, что не учтена ситуация, когда имеется класс, для которого нет кораблей в текущем состоянии базы данных. Заметим, что это допускается схемой, имеющей связь «один-ко-многим» между таблицами Classes и Ships.

Вернуться к обсуждению упражнения 55

Решить задачу на SQL-EX.RU


Bookmark and Share
Тэги:
ALL AND AUTO_INCREMENT AVG battles CASE CAST CHAR CHARINDEX CHECK classes COALESCE CONSTRAINT Convert COUNT CROSS APPLY CTE DATEADD DATEDIFF DATENAME DATEPART DATETIME DDL DEFAULT DELETE DISTINCT DML EXCEPT EXISTS EXTRACT FOREIGN KEY FROM FULL JOIN GROUP BY Guadalcanal HAVING IDENTITY IN INNER JOIN insert INTERSECT IS NOT NULL IS NULL ISNULL laptop LEFT LEFT OUTER JOIN LEN maker MAX Больше тэгов
Учебник обновлялся
сегодня
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.
Rambler's Top100