Найдите максимальное значение столбца и обновите его в том же столбце, если значение равно нулю - PullRequest
1 голос
/ 17 июня 2020

У меня есть таблица, как показано ниже (прикрепленное изображение таблицы).

ТаблицаA: столбцы 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

I хотите найти максимальное значение QTY месяца, затем обновите это максимальное значение до столбца QTY, который имеет нулевое значение в столбце QTY.

Ожидаемый результат

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

Обратите внимание: здесь столбец даты всегда не обязательно быть датой понедельника. И если в каком-либо месяце для всех недель есть ноль как QTY. Я хочу исключить эти записи из моего запроса

Не могли бы вы помочь мне, как я могу сделать это с помощью PL SQL.

1 Ответ

0 голосов
/ 17 июня 2020

Вы можете использовать коррелированный подзапрос:

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