表格示例
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
答案 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