Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
const_student Member Откуда: Сообщений: 11 |
Здравствуйте! Решаю задание на http://www.sql-ex.ru/ Условия задачи: Схема БД состоит из четырех таблиц: Product(maker, model, type) PC(code, model, speed, ram, hd, cd, price) Laptop(code, model, speed, ram, hd, price, screen) 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. Найдите среднюю цену ПК и ПК-блокнотов, выпущенных производителем A (латинская буква). Вывести: одна общая средняя цена. Запрос: SELECT AVG(price) FROM (SELECT price FROM laptop lp INNER JOIN Product p ON lp.model = p.model WHERE p.maker = 'A' UNION ALL SELECT price FROM PC INNER JOIN Product p ON PC.model = p.model WHERE p.maker = 'A') выдает ошибку: Incorrect syntax near ')' Не подскажите, почему? Подзапрос выполнял отдельно, все в порядке - выводит список цен. |
17 дек 18, 18:13 [21766290] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37155 |
SELECT AVG(price) FROM (SELECT price FROM laptop lp INNER JOIN Product p ON lp.model = p.model WHERE p.maker = 'A' UNION ALL SELECT price FROM PC INNER JOIN Product p ON PC.model = p.model WHERE p.maker = 'A') a Сообщение было отредактировано: 17 дек 18, 18:17 |
|
17 дек 18, 18:17 [21766292] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |