powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему данный запрос не работает
5 сообщений из 5, страница 1 из 1
Почему данный запрос не работает
    #40130585
Kudaj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Пытаюсь решить задачу на тренажёре, но не могу получить правильный ответ. Помогите найти ошибку в запросе.
Условие следующее:

"Найти округленное до сотых долей среднее арифметическое следующих цен:
1. Цена самых дешевых Laptop-ов от производителей РС с самой низкой скоростью CD;
2. Цена самых дорогих РС от производителей самых дешевых принтеров;
3. Цена самых дорогих принтеров от производителей Laptop-ов с наибольшим объемом памяти.
Замечание: При расчёте среднего отсутствующие цены не учитывать."

Инфо о базе данных:

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

Подсказка к задаче:
Не забыли, что столбец CD имеет строковый тип данных?

Моё решение:

SELECT CAST(SUM(query_1.price)/COUNT(CASE WHEN query_1.price IS NOT NULL THEN 1 ELSE 0 END) AS DEC(12,2)) AS avg_val
FROM (SELECT TOP 1 price
FROM Product
INNER JOIN Laptop ON Product.model = Laptop.model
WHERE maker IN (
SELECT DISTINCT maker
FROM Product
JOIN PC ON Product.model = PC.model
WHERE type = 'PC' AND cd IN (
SELECT TOP 1 cd
FROM PC
ORDER BY cd))
ORDER BY price
UNION ALL
SELECT TOP 1 price
FROM Product
INNER JOIN PC ON Product.model = PC.model
WHERE maker IN (
SELECT DISTINCT maker
FROM Product
JOIN Printer ON Product.model = Printer.model
WHERE Product.type = 'Printer' AND price = (
SELECT TOP 1 price
FROM Printer
ORDER BY price))
ORDER BY price DESC
UNION ALL
SELECT TOP 1 price
FROM Product
INNER JOIN Printer ON Product.model = Printer.model
WHERE maker IN (
SELECT DISTINCT maker
FROM Product
JOIN Laptop ON Product.model = Laptop.model
WHERE Product.type = 'Laptop' AND ram = (
SELECT TOP 1 ram
FROM Laptop
ORDER BY price DESC))
ORDER BY price DESC) AS query_1



Ответ: Неверно.
Ваш запрос вернул правильные данные на основной базе, но не прошел тест на проверочной базе.
* Несовпадение данных (1)
Результат выполнения Вашего запроса:
avg_val
693.33
...
Рейтинг: 0 / 0
Почему данный запрос не работает
    #40130589
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задачи с sql-ex.ru нужно решать самостоятельно.
...
Рейтинг: 0 / 0
Почему данный запрос не работает
    #40130601
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
" Помогите найти ошибку в запросе", помогаем:
Во-первых - слишком короткий запрос.

Шаг №1: этот запрос в ообщении нельзя как-то оформить, чтобы не был сплошным текстом?

Пишите, время пошло!
...
Рейтинг: 0 / 0
Почему данный запрос не работает
    #40130697
Kudaj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин,
Уже не актуально.
...
Рейтинг: 0 / 0
Почему данный запрос не работает
    #40130698
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kudaj
Ролг Хупин,
Уже не актуально.


Варианты:
1. Пятёрка сорвалась
2. Где-то в другом месте ответили
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему данный запрос не работает
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]