Показать данные за сегодня и на неделю раньше в один ряд. Возможно ли это в MySQL?

0

Пример таблицы

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
  • 2
    Не могли бы вы подробнее рассказать, как 30 и 25 в результате?
  • 0
    Вы можете использовать другой выбор, чтобы получить значение прошлой недели.
Показать ещё 3 комментария
Теги:

2 ответа

0
Лучший ответ

Вы можете добиться этого, используя 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
  • 0
    Ты замечательный. Работает. Спасибо @mittal.
0

Вот гипотетический запрос, который бы это сделал.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню