sql—查找列的最大值,如果值为零,则在同一列中更新它

nr7wwzry  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(244)

我有如下所示的表格(附上表格的图片)。
tablea:id1 、id2和date列是表a的主键。

ID1|ID2| QTY| Date
 1.  11. 10.   01/06/2020
 2.  22.  0.    08/06/2020
3.   33.  10.  15/06/2020
4.   44.  0.   22/06/2020
5.   55.  10.  29/06/2020

我想找到一个月的最大数量值,然后将该最大值更新到数量列,数量列中的值为零。
预期结果

ID1|ID2| QTY| Date
1  | 11 |10 |  01/06/2020
2  | 22 | 10|  08/06/2020
3  | 33 | 10|  15/06/2020
4  | 44 | 10|  22/06/2020
5  | 55 | 10|  29/06/2020

拜托note:here date 列总是不必是星期一的日期。如果任何月份的所有周都是零,则数量为零。我想从查询中排除这些记录
你能帮我怎么用plsql吗。

2exbekwf

2exbekwf1#

可以使用相关子查询:

update t
    set qty = (select max(t.qty) 
               from t t2
               where trunc(t2.date, 'MON') = trunc(t.date, 'MON')
    where qty = 0;

相关问题