Официальный сайт студ.городка НГТУ
Программирование и БД » Подскажите в чем ошибка (SQL) 

#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

#3  18.02.10 01:17

Re: Подскажите в чем ошибка (SQL)

+VoFFka+, Спасибо ))) Это правильный запрос. Вот что значит опыт!!!

Offline

Программирование и БД » Подскажите в чем ошибка (SQL) 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.572 сек.
Выполнено 11 запросов.