t-alexashka
@t-alexashka
Сразу пишу legacy код

Как вывести актуальную цену товара если они меняются каждый день?

Привет друзья!

Есть таблица товаров sku:
id, sku, name

и есть таблица цен sku_costs:
id, sum, datefrom

Где datefrom это дата изменения цены а sum новая цена:
2,500,2018-02-01 10:00:00
2,550,2018-02-05 18:00:00

(т.е. из этого примера пронятно что текущая цена 550р для товара #2)

Вопрос:
Как вывести список товаров с актуальными ценами на данный момент?

Пробую так:

select s.*, sc.`sum`, max(sc.datefrom) from sku s
left join sku_costs sc
	on s.id = sc.id 
group by s.id


и разумеется так не работает.

Прошу помощи! Спасибо.
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `s`.`id`, `s`.`sku`, `s`.`name`, `p`.`sum`
  FROM (
    SELECT `id`, MAX(`datefrom`) AS `lastdate`
      FROM `sku_costs`
      GROUP BY `id`
  ) AS `lp`
  JOIN `sku_costs` AS `p` ON `p`.`id` = `lp`.`id` AND `p`.`datefrom` = `lp`.`lastdate`
  RIGHT JOIN `sku` AS `s` ON `s`.`id` = `lp`.`id`
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы