SQL условная сумма обновления Oracle - PullRequest
0 голосов
/ 26 сентября 2019

Я хочу обновить sum для total qty (ответ выделен) для Table 1 на основе Invoice_No одним щелчком мыши Но условие:

status = 1, then same qty else
status = 2, then qty = zero

enter image description here

1 Ответ

0 голосов
/ 26 сентября 2019

использовать объединение и условное агрегирование

select t1.line_no,
sum(case when status=1 then Qty else 0 end ) as totalQty
from table1 t1 join table2 t2 on t1.line_no=t2.line_no
join table3 t3 on t2.line_no=t3.line_no
 and t2.part_id=t3.part_id group by t1.line_no

Кстати, кажется, вы находите обновление, поэтому вы можете использовать ниже

merge into table1 t1 using
(
 select t2.line_no,
    sum(case when status=1 then Qty else 0 end ) as totalQty
    from table2 
    join table3 t3 on t2.line_no=t3.line_no
     and t2.part_id=t3.part_id group by t2.line_no
) a on a.line_no=t1.line_no
when matched then update set t1.totalqty=a.totalQty
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...