Как я могу добавить процентное увеличение от первоначальной цены? - PullRequest
0 голосов
/ 20 сентября 2018

возвращает новую цену товара, которая составляет 80% от текущей цены за единицу.Это новое поле должно иметь имя New_Price, тогда как исходное поле unit_price должно иметь имена old_price.

Таблица: ITEMS, состоящая из ITEM_ID, TITLE, ARTIST, UNIT_PRICE

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Непонятно, хотите ли вы создать новый столбец в вашей таблице или просто хотите запросить таблицу.

Новый столбец

Предполагая ценутип столбца DECIMAL(10,2), давайте посмотрим на шаги.Если тип данных отличается, просто измените его в соответствии с настройками столбца.

Переименуйте старый столбец

ALTER TABLE items CHANGE COLUMN unit_price old_price DECIMAL(10,2) NULL;

Создайте новый столбец

ALTER TABLE items ADD COLUMN unit_price DECIMAL(10,2) NULL AFTER old_price;

Наконецнеобходимо заполнить значения

UPDATE items SET unit_price = old_price * 0.8;

Запрос (без нового столбца)

SELECT
  item_id,
  title,
  artist,
  unit_price AS old_price,
  unit_price * 0.8 AS unit_price
FROM items;
0 голосов
/ 20 сентября 2018

Было бы лучше, если бы вы указали структуру таблицы, пример ввода и ожидаемый результат.

Исходя из вышеизложенного, вы можете использовать для этого триггеры.Для каждой записи в таблице сервер MYSQL запускает запрос в соответствии с указанным условием.Ваш запрос должен выглядеть примерно так

mysql> CREATE TRIGGER trig_unitPrice AFTER INSERT ON ITEMS
   FOR EACH ROW SET New_Price= NEW.unit_Price * 0.8;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...