@EkZha

Как сформировать таблицу со столбцом «Выручка» с учетом актуальной цены на продукт?

Здравствуйте! Имеется две таблицы:

1) "Цены" (prices) со столбцами "наименование продукта", "цена", "дата вступления цены в силу" (у одного и то же продукта с течением времени цена менялась)
2) "Продажи"(sales) со столбцами "наименование продукта", "дата продажи", "количество проданных единиц товара"
Нужно составить запрос на создание таблицы со столбцами "наименование продукта", "дата продажи", "выручка", где выручка считается как произведение количества на актуальную на данную дату цену.

Как написать условие так, чтобы для продукта учитывалась цена, указанная на ближайшую в меньшую дату сторону? В результате моего запроса расчет для некоторых записей производятся по неправильным ценам: CREATE TABLE revenue AS SELECT sales.product, sales.date, sales.amount * prices.price AS revenue FROM sales INNER JOIN prices ON sales.product = prices.product WHERE sales.date >= prices.date_start group by sales.date;

Подскажите, в какую сторону думать.
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
Ну для начала стоило бы вырвать руки аффтору именно такой структуры данных...
Потом погрустить и извращаться-извращаться с кучей оговорок...

Например можно взять и получить цену позже искомой даты как:

select top 1
цена
from Цены
where дата вступления цены в силу<=искомая дата and товар=товар
order by дата вступления цены в силу desc


как минимум приведенный выше кусок напрашивается как вложенный запрос или как кусок cte ну или как фрагмент join
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы