2015-04-26 2 views
1

Я изучаю SQL, и я уже давно нахожусь в этом вопросе из моей книги.Как выбрать данные из таблицы, отображающей новый столбец, как процентное увеличение данных из старого столбца?

Вопросы в этой книге задаются таким образом, что я являюсь администратором баз данных для книжного магазина.

Итак, у меня есть все эти таблицы (книги, автор, издатель, заказчик, заказ и т. Д.). Я полагаю, были созданы автором этой книги (Oracle 11g by Joan Casteel).

Этот вопрос меня спрашивает:

Management предлагает увеличить цену каждой книги. Сумма увеличения будет основана на категории каждой книги в соответствии со следующей шкалой: компьютерные книги, 10%, книги по фитнесу, 15%, книги самопомощи, 25%, все остальные категории, 3%. Создайте список, который отображает название, категорию, текущую розничную цену каждой книги и пересмотренную розничную цену. Цены должны отображаться с двумя знаками после запятой. Заголовки столбцов для вывода должны быть следующими: название, категория, текущая цена и пересмотренная цена. Сортировка результатов по категориям. Если в категории более одной книги, второстепенная сортировка должна выполняться над названием книги.

Создайте документ, чтобы показать управление оператором SELECT, используемым для генерации результатов и результатов инструкции.

Поэтому я знаю, что в своем SQL-заявлении мне нужно выбрать название этих книг, категорию книг, текущую розничную цену книг и пересмотренную розничную цену книг. Для этой пересмотренной розничной цены мне нужно отобразить% увеличения старой розничной цены и сделать это по категориям.

Это то, что я начал делать:

SELECT title, category, retail AS "Current Price", retail + (10/100) AS "New Price" 
FROM books 
WHERE category = 'COMPUTER'; 

Когда я делаю это, хотя, я только получить результаты от компьютера категории книг и мне нужны результаты всех категорий и отображать увеличение цены% по категория.

Как это сделать, чтобы я мог создать следующий столбец под названием «Новая цена» и отобразить ВСЕ книги с их удельным ростом в% по розничной цене в зависимости от категории книги?

ответ

1

Чтобы сделать это, вы можете использовать инструкцию CASE.

SELECT title, category, retail AS "Current Price", retail * CASE category WHEN 'COMPUTER' THEN 1.1 WHEN 'FITNESS' THEN 1.15 ELSE 1.03 END AS "New Price" 
FROM books 

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

+0

Спасибо, мой друг. Не могу поверить, что это так просто! –

Смежные вопросы