Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите срочно с SQL ))

Game Office Ученик (37), на голосовании 3 года назад
Для тех производителей, у которых есть продукты с известной ценой хотя бы в одной из таблиц Laptop, PC, Printer найти максимальные цены на каждый из типов продукции. Вывод: maker, максимальная цена на ноутбуки, максимальная цена на ПК, максимальная цена на принтеры. Для отсутствующих продуктов/цен использовать NULL.
Голосование за лучший ответ
Чайкин Виталий Мыслитель (7594) 3 года назад
SELECT Производитель, Модель, MAX(Цена) FROM
(SELECT Производитель, Модель, Цена FROM Laptop
UNION
SELECT Производитель, Модель, Цена FROM PC
UNION
SELECT Производитель, Модель, Цена FROM Printer)
GROUP BY Производитель, Модель
Game OfficeУченик (37) 3 года назад
Можно полный ответ?
Game Office, Ты нашел как решить?
Vasia Popkin Ученик (104) 3 года назад
Это 75ая задача с сайта sql-ex.ru.
Я вот так решил, но не проходит проверку на проверочной базе данных.

select p.maker,
max(l.price) as laptop,
max(pc.price) as pc,
max(pr.price) as printer
from product p
left join pc
on p.model = pc.model
left join laptop l
on p.model = l.model
left join printer pr
on p.model = pr.model
group by p.maker
hrach.loretsyan Ученик (225) 3 года назад
select maker,
max(l.price) as laptop,
max(pc.price) as pc,
max(pr.price) as printer
from laptop l right join product p on l.model = p.model left join pc on pc.model = p.model left join printer pr on p.model = pr.model
where maker in (
select maker from product where model in (
select model from pc where price is not null union all
select model from printer where price is not null union all
select model from laptop where price is not null)
) group by maker order by maker;
Похожие вопросы