sql >> Database teknologi >  >> RDS >> Oracle

Oracle aggregeringsfunktion til at allokere beløb

Du leder efter en kumulativ sum. Noget som dette:

select t1.*,
       (case when cumecap <= t2.item_amount 
             then t1.capacity
             when cumecap - t1.capacity <= t2.item_amount
             then t2.item_amount - (cumecap - t1.capacity)
             else 0
        end) as allocated_capacity
from (select t1.*,
             sum(t1.capacity) over (partition by bag_type order by bag_id) as cumecap
      from t1
     ) t1 join
     t2
     on t1.bag_type = t2.item_type;


  1. UnsatisfiedLinkError i native metode

  2. Tillader en bruger at videregive tabelnavn og kolonnenavn, mens SQL-injektion forhindres

  3. GORM oprette en post, der muligvis allerede eksisterer

  4. Sådan migreres fra Oracle DB til MariaDB