Пример таблицы
id | name | value | date
--------------------------------------------
1 | abc | 20 | 2018-01-26
1 | abc | 24 | 2018-01-27
1 | abc | 25 | 2018-01-28
1 | abc | 30 | 2018-01-29
Я знаю, как получать данные с 28 января или по сегодняшний день. Но мне нужно каким-то образом показать значения двух дат в двух столбцах. Возможно ли это в одном запросе mysql?
Как это
name | value_today | value_pre
---------------------------------------
abc | 30 | 25
Вы можете добиться этого, используя case
. Этот запрос возвращает значение сегодняшнего дня и предыдущее значение даты:
SELECT
id, name,
Sum(Case When date = CURDATE()
Then value Else 0 End) TodaySum,
Sum(Case When (date = CURDATE()-1)
Then value Else 0 End) PreviousSum
FROM tbl1
group by id, name
Вот гипотетический запрос, который бы это сделал.
SELECT t1.value AS value_today,(SELECT t2.value FROM table AS t2 WHERE t2.date=2018-01-29 ) AS value_pre
FROM table AS t1 WHERE t1.date=2018-01-28