|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - [решено] Помогите в освоении SQL, не могу решить учебную задачу |
|
MSFT SQL Server - [решено] Помогите в освоении SQL, не могу решить учебную задачу
|
Старожил Сообщения: 186 |
Профиль | Отправить PM | Цитировать Добрый день!
Задача такая: Краткая информация о базе данных "Компьютерная фирма": Никак не могу решить, уже долго над ней сижу. Пробовал гуглить. Помогите плз. По идее, задача одна из первых, так что она не должна быть очень сложной, но... |
|
Отправлено: 20:56, 30-10-2010 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Не вижу самой задачи. Описание вижу, информацию вижу, а вот того, что конкретно необходимо сделать, сделать только посредством SQL или еще как - не вижу. Также не вижу хотя бы начальных попыток сделать задание. Делать все с нуля никто не будет, а вот помочь с неверным запросом, подсказать, куда смотреть - всегда пожалуйста.
|
------- Отправлено: 00:45, 01-11-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 186
|
Профиль | Отправить 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) Вставить значения, которые равны: 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 в каждой группе берутся только модели, которых в таблице Laptop больше одной. |
Отправлено: 15:50, 04-11-2010 | #3 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать максимальная скорость блокнота - это пять!
"логика" не соответвует коду. из insert и select убираем cd - значение по умолчанию на то и "по умолчанию", что его не надо указывать хитрая конструкция с where здесь не требуется, достаточно указать group by model в основном select'е агрегатная функция для model не нужна, т.к. в рамках группы model одинаковый таблица pc в select'е не нужна в условиях задачи я не увидел, что "группа" не может состоять из одной модели |
Отправлено: 16:42, 04-11-2010 | #4 |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 11:50, 05-11-2010 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Помогите решить задачу | Urann | Программирование и базы данных | 11 | 14-05-2013 11:44 | |
C/C++ - [решено] Помогите решить задачу по С++ | Spl1t | Программирование и базы данных | 301 | 21-12-2011 23:20 | |
C/C++ - Помогите решить задачу | zdughi | Программирование и базы данных | 1 | 01-05-2009 06:03 | |
помогите решить задачу | snikers | Программирование и базы данных | 2 | 27-08-2004 01:57 | |
помогите решить задачу | Guest | Программирование и базы данных | 2 | 21-05-2004 11:23 |
|