Вопрос:
Для каждого производителя, у которого есть модели хотя бы в одной из таблиц ПК, ноутбука или принтера, определите максимальную цену для своей продукции.
Вывод: производитель;если среди цен для продуктов данного производителя есть значения NULL, для этого производителя выведите NULL, в противном случае - максимальную цену.
база данных: Краткое описание базы данных "Компьютерная фирма"
Схема базы данных состоит из четырех таблиц:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, screen, price)
Printer(code, model, color, type, price)
Таблица Product содержит данные о производителе, номере модели и типе продукта («ПК», «Портативный компьютер» или «Принтер»). Предполагается, что номера моделей в таблице Product являются уникальными для всех производителей и типов продуктов. Каждый персональный компьютер в таблице ПК однозначно идентифицируется уникальным кодом и дополнительно характеризуется своей моделью (внешний ключ относится к таблице «Продукт»), скоростью процессора (в МГц) - полем скорости, объемом ОЗУ (в МБ) - оперативной памятью. , емкость жесткого диска (в Гб) - hd, скорость CD-ROM (например, «4x») - кд и его цена. Стол для ноутбука похож на стол для ПК, за исключением того, что вместо скорости CD-ROM он содержит размер экрана (в дюймах) - экран. Для каждой модели принтера в таблице «Принтер» тип вывода («y» для цвета и «n» для монохромного) - поле цвета, технология печати («Laser», «Jet» или «Matrix») - тип и цена
Код:
select maker,max( price )
from
(
select maker, max( l.price)
from product p left join laptop l on p.model = l.model
group by maker
union all select maker, max( pr.price)
from product p left join printer pr on p.model = pr.model
group by maker
union all select maker, max( pc.price)
from product p left join pc on p.model = pc.model
group by maker
) as h
group by maker ;
, и это дает мне эту ошибку:
Ошибка в запросе. Код: (933) ORA-00933: SQL command not properly ended.
Я не знаю, в чем проблема.