#1 10.02.10 14:24
Подскажите в чем ошибка (SQL)
Сижу решаю упражнения. Не могу догнать где ошибка. Не выводится 3 записи.
Краткая информация о базе данных "Компьютерная фирма":
Схема БД состоит из четырех таблиц:
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 представляет производителя (maker), номер модели (model) и тип ('PC' - ПК, 'Laptop' - ПК-блокнот или 'Printer' - принтер). Предполагается, что номера моделей в таблице Product уникальны для всех производителей и типов продуктов. В таблице PC для каждого ПК, однозначно определяемого уникальным кодом – code, указаны модель – model (внешний ключ к таблице Product), скорость - speed (процессора в мегагерцах), объем памяти - ram (в мегабайтах), размер диска - hd (в гигабайтах), скорость считывающего устройства - cd (например, '4x') и цена - price. Таблица Laptop аналогична таблице РС за исключением того, что вместо скорости CD содержит размер экрана -screen (в дюймах). В таблице Printer для каждой модели принтера указывается, является ли он цветным - color ('y', если цветной), тип принтера - type (лазерный – 'Laser', струйный – 'Jet' или матричный – 'Matrix') и цена - price.
Задание:
Для каждой группы блокнотов с одинаковым номером модели добавить запись в таблицу PC со следующими характеристиками:
код: минимальный код блокнота в группе +20;
модель: номер модели блокнота +1000;
скорость: максимальная скорость блокнота в группе;
ram: максимальный объем ram блокнота в группе *2;
hd: максимальный объем hd блокнота в группе *2;
cd: значение по умолчанию;
цена: максимальная цена блокнота в группе, уменьшенная в 1,5 раза
Код:
insert into pc (code, model, speed, ram, hd, cd, price)
select min ( laptop.code ) + 20,
min ( laptop.model ) + 1000,
max ( laptop.speed ),
max ( laptop.ram ) * 2,
max ( laptop.hd ) * 2,
min (pc.cd ),
max ( laptop.price ) / 1.5
from laptop, pc
where laptop.model=pc.model
Offline
#2 18.02.10 00:55
Re: Подскажите в чем ошибка (SQL)
Мария, ты чуток не внимательно прочитала задание вот, а на самом деле тут все просто как два пальца кхм...:
Код::
insert into pc (code,model,speed,ram,hd,price) select min(code)+20, model+1000, max(speed), max(ram)*2, max(hd)*2, max(price)/1.5 from laptop group by model;
Offline

