【发布时间】:2020-05-17 00:06:03
【问题描述】:
当数据不可用或未注册时,我的表会生成每月数据,并且一列(位置)显示 0。
我在这里要做的是,如果该位置在本月返回 0,则查找前一个月的位置。
| MONTH | ID | LOCATION |
| Jan 2020 | 1111 | 0 |
| Jan 2020 | 1242 | 23 |
| Jan 2020 | 1425 | 58 |
ID: 1111 应该显示Dec 2019 的位置,而不是Jan 2020。
到这里为止,当我运行查询时,它没有显示任何结果:
SELECT c.MONTH, c.ID, CASE WHEN c.LOCATION = 0 then b.LOCATION else c.LOCATION END as LOCATION
FROM DB.TABLE1 c, DB.TABLE1 b
where c.ID = b.ID
and c.MONTH in ('Jan 2020')
and b.MONTH in ('Dec 2019')
有什么帮助吗? 谢谢
【问题讨论】:
-
如果有多个 2019 年 12 月的值怎么办?我们拿哪一个?
-
您是真的将日期存储为字符串,还是实际上有一列
date数据类型? -
从2015年到2020年4月有很多个月,我们取2020年1月前1个月
标签: sql database oracle date window-functions