Задать вопрос
@arsenaljek

В диапазоне дат оставить уникальные значения цен?

Всем привет.
Подскажите. Есть таблица цен. В эту таблицу заноситься цена, только в том случае, если цена за предыдущую дату отличается от текущей. Выглядит это как-то так
"id" "id_product" "price_product" "date"
"1" "999999" "1118" "2019-02-15"
"2" "999999" "1418" "2019-03-15"
При выводе я вывожу все цены вообще, которые относятся к данному id и этот вывод выглядит как-то так
23.03.2019 1200 руб.
20.03.2019 1200 руб.
19.03.2019 1200 руб.
18.03.2019 1200 руб.
17.03.2019 1200 руб.
16.03.2019 1200 руб.
15.03.2019 1200 руб.
и т.д и т.п
Я хочу чтобы, если цена в определенном промежутке дат одна и та же, то просто выводить так
15.03.2019 - 30.03.2019 - 1200р
31.03.2019 - 05.04.2019 - 1300р
06.04.2019 - 30.04.2019 - 1200р
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой 4 комментария
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
И что вам мешает так выводить?
1. Берёте первую строку, назовём её строка_1.
2. Из строки_1 берёте дату начала интервала и цену.
3. Если строк больше не осталось, то на п.9
4. Берёте следующую строку, назовём её строка_2.
5. Уменьшаете дату из строки_2 на один день, берёте её как дату конца интервала.
6. Выводите даты и цену.
7. Берёте строку_2 как строку_1
8. На п.3
9. Выводите дату начала из строки_1, текущую дату и цену.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Urvin
@Urvin
У Вас вывод таблицы не удовлетворяет написанному ранее условию "только в том случае, если цена за предыдущую дату отличается "

На PHP примерно так:
$cnt = count($records);
for($i = 0; $i < $len; ++$i) {
  $next = $i + 1;
  if($next < $len) {
    echo $records[$next]['date'], ' - ';
  }
  echo $records[$i]['date'], '  ', $records[$i]['price'] ;
}


Но я бы перенес эту логику в SQL-запрос
Ответ написан
Ваш ответ на вопрос

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

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