数据表(假如表的后2行不是同时存在)
| id | date | monv | dayv |
|---|---|---|---|
| 1 | 2023-7-14 | 23 | 23 |
| 2 | 2023-7-15 | 26 | 3 |
| 3 | 2023-7-16 | 30 | 4 |
| 4 | 2023-7-17 | 50 | 20 |
-- 如果数据表中的date是20230706这样的字符串,可以用str_to_date函数转换
-- 从累计求每一天的数据
SELECT zb.date,IFNULL(zb.monv,0)-IFNULL(cb.monv,0) as dayv
FROM TEST_WJG zb
LEFT JOIN TEST_WJG cb
ON zb.date=DATE_ADD(cb.date,interval 1 day)
?
-- 根据每一天的数据求到每一天的累计①
SELECT zb.date,(SELECT SUM(cb.dayv) from TEST_WJG cb WHERE zb.date>=cb.date) as monv
FROM TEST_WJG zb
?
-- 根据每一天的数据求到每一天的累计②
SELECT zb.date,SUM(cb.dayv) as monv
FROM TEST_WJG zb
left join TEST_WJG cb ON zb.date>=cb.date
group by zb.date
从累计求每一天的数据结果展示
| date | dayv |
|---|---|
| 2023-7-15 | 3 |
| 2023-7-16 | 4 |
| 2023-7-17 | 20 |
| 2023-7-14 | 23 |
从每一天计算累计到每一天的数据结果展示
| date | monv |
|---|---|
| 2023-7-14 | 23 |
| 2023-7-15 | 26 |
| 2023-7-16 | 30 |
| 2023-7-17 | 50 |