Запрос SQL. Еженедельный доход

Рейтинг: -2Ответов: 1Опубликовано: 16.03.2023

Есть таблицы ХЛЕБОЗАВОД(id,номер,телефон, адрес), КИОСК(id,номер,адрес, дата открытия, средний ежедневный доход, код хлебозавода), ВЛАДЕЛЕЦ(Id киоска, фио, дата рождения)

Как создать таблицу содержащую перечень киосков 9-го хлебозавода. В таблицу внести вычисляемое поле СРЕДНИЙ ЕЖЕНЕДЕЛЬНЫЙ ДОХОД?

Ответы

▲ 0Принят

Для создания таблицы, содержащей перечень киосков 9-го хлебозавода и вычисляемого поля "СРЕДНИЙ ЕЖЕНЕДЕЛЬНЫЙ ДОХОД" можно так попробовать

CREATE TABLE kiosks_of_bakery_9 (
  id INT NOT NULL,
  number INT NOT NULL,
  address VARCHAR(255) NOT NULL,
  opening_date DATE NOT NULL,
  daily_income DECIMAL(10,2) NOT NULL,
  bakery_code INT NOT NULL,
  average_weekly_income DECIMAL(10,2) GENERATED ALWAYS AS (daily_income * 7) STORED,
  PRIMARY KEY (id),
  FOREIGN KEY (bakery_code) REFERENCES ХЛЕБОЗАВОД(id)
);

INSERT INTO kiosks_of_bakery_9 (id, number, address, opening_date, daily_income, bakery_code)
SELECT id, number, адрес, дата_открытия, средний_ежедневный_доход, код_хлебозавода 
FROM КИОСК
WHERE код_хлебозавода = 9;

Этот запрос создаст таблицу kiosks_of_bakery_9, содержащую перечень киосков 9-го хлебозавода, а также добавит в нее вычисляемое поле average_weekly_income, которое будет хранить средний еженедельный доход каждого киоска.

Затем с помощью запроса INSERT INTO мы добавляем данные в новую таблицу, выбрав только те записи из таблицы КИОСК, где код_хлебозавода равен 9.