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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - Задачка

Ответить
Настройки темы
MSFT SQL Server - Задачка

Аватара для ValVlaGen

Пользователь


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

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


Схема БД состоит из четырех таблиц:
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.

Какие будут предложения?

Отправлено: 09:07, 22-08-2008

 

Ветеран


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

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


Это же азы TSQL

Решение данной и еще одной темы было удалено, т.к., помимо нарушений правил прохождения сертификации sql-ex.ru, это еще и неэтично - просить других сдать за вас сертификат... Учите матчасть, "специалисты", намного интереснее самому решить проблему, чем списать и не понять, в чем суть...

Последний раз редактировалось Delirium, 16-08-2010 в 14:36. Причина: Решение удалено по просьбе sql-ex


Отправлено: 11:48, 22-08-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ValVlaGen

Пользователь


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

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


Большое спасибо за ответ

А вот еще задачка:


Схема базы данных состоит из трех отношений:

utQ (Q_ID int,Q_NAME varchar(35))
utV (V_ID int,V_NAME varchar(35),V_COLOR char(1))
utB (B_Q_ID int,B_V_ID int,B_VOL tinyint, B_DATETIME datetime)


Таблица utQ содержит идентификатор и название квадрата, цвет которого первоначально черный.
Таблица utV содержит идентификатор, название и цвет баллончика с краской.
Таблица utB содержит информацию об окраске квадрата баллончиком: идентификатор квадрата, идентификатор баллончика, количество краски и время окраски.
При этом следует иметь в виду, что:
- баллончики с краской могут быть трех цветов - красный V_COLOR='R', зеленый V_COLOR='G', голубой V_COLOR='B' (латинские буквы).
- объем баллончика равен 255 и первоначально он полный;
- цвет квадрата определяется по правилу RGB, т.е. R=0,G=0,B=0 - черный, R=255, G=255, B=255 - белый;
- запись в таблице закрасок utB уменьшает количество краски в баллончике на величину B_VOL и соответственно увеличивает количество краски в квадрате на эту же величину;
- значение 0 < B_VOL <= 255
- Количество краски одного цвета в квадрате не превышает 255, а количество краски в баллончике не может быть меньше нуля.

Предполагая, что среди идентификаторов квадратов имеются пропуски, найти минимальный и максимальный "свободный" идентификатор в диапазоне между имеющимися максимальным и минимальным идентификаторами.
Если пропусков нет, выводить NULL.
Например, для последовательности идентификаторов квадратов 1,2,5,7 результат должен быть 3 и 6

Отправлено: 12:35, 22-08-2008 | #3


Ветеран


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

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


По-моему, простого полноценного решения в один запрос здесь не изобрести.

Отправлено: 13:29, 22-08-2008 | #4


Аватара для ValVlaGen

Пользователь


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

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


Не не есть решение точно . Пока не знаю - сам думаю. Но как вымучаю - обязательно пропишу.

Отправлено: 14:17, 22-08-2008 | #5


Ветеран


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

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


Пока приходит на ум только так:
  1. Извлечь min и max
  2. Создать временную таблицу с инкрементом от min до max
  3. Из соединения с изначальной получить все пропуски
  4. Из пропусков выбрать min и max
Только вот выводить NULL - получается отдельной подзадачей.

Да и ради двух чисел строить огромную временную таблицу - не эффективно.

Отправлено: 14:48, 22-08-2008 | #6


Аватара для Delirium

Ветеран


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

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


Цитата Busla:
Только вот выводить NULL - получается отдельной подзадачей. »
Можно и сразу, типа такого:
Решение данной и еще одной темы было удалено, т.к., помимо нарушений правил прохождения сертификации sql-ex.ru, это еще и неэтично - просить других сдать за вас сертификат... Учите матчасть, "специалисты", намного интереснее самому решить проблему, чем списать и не понять, в чем суть...

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Последний раз редактировалось Delirium, 16-08-2010 в 14:37. Причина: Решение удалено по просьбе sql-ex


Отправлено: 02:15, 27-08-2008 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - Задачка

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Задачка по GPO Lavrentiy Microsoft Windows NT/2000/2003 6 28-11-2008 17:55
Задачка по С++ kiri Программирование и базы данных 1 21-06-2006 02:57
Задачка VuDZ Программирование и базы данных 4 02-04-2003 17:44
Задачка noname00.pas Программирование и базы данных 6 07-12-2001 11:43
Задачка... noname00.pas Программирование и базы данных 4 28-11-2001 03:17




 
Переход