在一行中显示今天和一周前的数据。在mysql中有可能吗?

时间:2018-01-29 06:51:18

标签: php mysql

表格示例

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

我知道如何从1月28日或今天获取数据。但是我需要一些方法来在两列中显示两个日期的值。是否有可能在一个mysql查询中?

喜欢这个

name    |   value_today |   value_pre
---------------------------------------
abc     |   30          |   25

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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