【发布时间】:2016-05-12 14:28:39
【问题描述】:
我想从我的数据库中获取过去 31 天的一些数据。当“finalized”列为 NULL 时,我想从“today”列获取数据,但如果“finalized”列不为 NULL,我想从“finalized”列获取数据。我总是想得到最后输入的行。
表我的收入
id INT(11) AI
date datetime
today decimal(4,2) NULL
finalized decimal(4,2) NULL
id date today finalized
-----------------------------------------------
6 2016-02-04 04:52:00 0.39 NULL
5 2016-02-03 12:34:00 NULL 19.74
4 2016-02-03 12:33:00 15.96 NULL
3 2016-02-03 12:32:00 12.32 NULL
2 2016-02-02 15:16:00 NULL 9.16
1 2016-02-02 14:29:00 2.20 NULL
SQL
SELECT
date,
CASE
WHEN finalized=NULL
THEN today
WHEN finalized!=NULL
THEN finalized
END
AS earn
FROM MyEarnings
GROUP BY DATE_FORMAT(date, '%Y-%m-%d')
ORDER BY date ASC
LIMIT 0 , 31
这就是我的结局
date earn
---------------------------
2016-02-02 00:00:00 NULL
2016-02-03 00:00:00 NULL
2016-02-04 00:00:00 NULL
我想要得到什么
date earn
----------------------------
2016-02-02 00:00:00 9.16
2016-02-03 00:00:00 19.74
2016-02-04 00:00:00 0.39
编辑
我还想获取“finalized”列中所有值的每个月的摘要,其中包含每天的最大“id”。
【问题讨论】: