Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 186
Благодарности: 4

Профиль | Отправить PM | Цитировать


Задача: добавить записи в таблицу PC.
Какие именно, описано в первом посте.

Это нужно сделать в 1 SQL запрос.

Над запросом я просидел долго. Сейчас он такой:

Код: Выделить весь код
insert into pc 
         ( code, model, speed, ram, hd, cd, price )

select min ( laptop.code )  + 20,
            min ( laptop.model ) + 1000, 
            max ( laptop.speed ) * 2,
            max ( laptop.ram ) * 2,
            max ( laptop.hd ) * 2,
            min ( pc.cd ),
            max ( laptop.price ) / 1.5
     from laptop, pc
where laptop.model in
(Select model from laptop
group by model
having count(model)>1)
Логика такая:
Код: Выделить весь код
insert into pc 
         ( code, model, speed, ram, hd, cd, price )
Вставить значения, которые равны:
Код: Выделить весь код
select min ( laptop.code )  + 20,
            min ( laptop.model ) + 1000, 
            max ( laptop.speed ) * 2,
            max ( laptop.ram ) * 2,
            max ( laptop.hd ) * 2,
            min ( pc.cd ),
            max ( laptop.price ) / 1.5
     from laptop, pc
Минимальным значениям группы, где:
Код: Выделить весь код
where laptop.model in
(Select model from laptop
group by model
having count(model)>1)
в каждой группе берутся только модели, которых в таблице Laptop больше одной.

Отправлено: 15:50, 04-11-2010 | #3