Книги и статьи по SQL Rambler's Top100 Switch language to: English 20 апреля 2024 г. 2:04:31


www.sql-ex.ru
Skip Navigation Links  

 

Print  Версия для печати

На главную страницу

Характерные ошибки при решении упражнений. Задача 14

Моисеенко С.И.

Для таблицы Product получить результирующий набор в виде таблицы со столбцами maker, pc, laptop и printer, в которой для каждого производителя требуется указать, производит он (yes) или нет (no) соответствующий тип продукции. В первом случае (yes) указать в скобках без пробела количество имеющихся в наличии (т.е. находящихся в таблицах PC, Laptop и Printer) различных по номерам моделей соответствующего типа.

Если производитель выпускает модели некоторого типа, но ни одной из них нет в наличии, то, согласно формулировке, результат должен быть

yes(0)

а не

no

Многие находят ошибку в тестовом решении. Претензии сводятся к следующему запросу:

SELECT COUNT(*)
   FROM Product
   WHERE Maker = 'E' AND type='PC'

который дает 3 модели ПК для производителя Е, в то время как «правильный ответ» дает только одну модель компьютера для этого производителя. Вернемся к формулировке, в которой сказано:

«…указать в скобках без пробела количество имеющихся в наличии (т.е. находящихся в таблицах PC, Laptop и Printer) различных по номерам моделей соответствующего типа…»

Это в нашем случае означает, в скобках требуется указать число различных моделей ПК производителя Е в таблице PC. На языке SQL это означает:

SELECT COUNT(DISTINCT pc.model)
   FROM Product pr
   JOIN PC ON pr.model=pc.model
   WHERE Maker = 'E'

Перейти к решению задачи #14

На главную страницу

Print  Версия для печати


Использование любых материалов данного сайта возможно только
при условии обязательного размещения прямой ссылки на сайт
http://www.sqlbooks.ru
на каждой странице, где размещены используемые материалы.

 Начало   Статьи    Книги 
Рейтинг@Mail.ru Rambler's Top100 Alt Упражнения по SQL: обучение, тестирование, сертификация по языку SQL Copyright c 2002-2006. All rights reserved.