Skip to Main Content

APEX

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Oracle APEX cumulative sum / running total over month and year

hiddenonearthJun 26 2022

Hello,
I am trying to implement an interactive report based on refreshing dynamics actions where a user can check the current visits per month and year for different accounts. He can select the data via a popup lov for the months and the year.
I'd like to implement a column where the running total is displayed by months for every account
For instance the number of visits for account01:
January: 150
February: 200
March: 50
...
___________________________________________________________________________
What I want to achieve is a running total by month and year filtered
January: 150
February: 350 (Jan + Feb)
March: 400 (Jan + Feb + Mar)
...
I tried this with the following SQL Query where I managed to get the total for every month and for every individual account but the cumulative sum for the next months is not working.
The data gets refreshed after another month is selected via the Popup LoV

    sum(count(*)) OVER (PARTITION BY user_account, to_char(year, 'YYYY'), to_char(month, 'MM') ORDER BY to_char(year, 'YYYY'), to_char(month, 'MM'),user_account)
     as sum_total
GROUP BY
    user_account,
    to_char(ord.year, 'YYYY'),
    to_char(ord.month, 'MM')

Any idea on how I can display the cumulative sum by the months.
Appreciate your help.
Thank you.

Comments

SmithJohn45

can you give some " sample data " like this:

with t as (Select 'account01' as account_name, '1990' as year, 'Jan' as month from dual
           Select 'account02' as account_name, '2000' as year, 'Feb' as month from dual
)
select ( your query here ) from t;

the seniors can help after checking the actual results of your query will return.
Help seniors to help yourself...

Stax
SQL> ed
Wrote file afiedt.buf


  1  with t (account_name,year,month,sal) as (
  2   select 'u1','2022','January',150 from dual union all
  3   select 'u1','2022','February',200 from dual union all
  4   select 'u1','2022','March',300 from dual
  5  )
  6  select
  7    t.*
  8   ,sum(sal) over (partition by account_name order by  to_date(month||year,'MonthYYYY','NLS_DATE_LANGUAGE=AMERICAN')) ssal
  9* from t
SQL> /


AC YEAR MONTH           SAL       SSAL
-- ---- -------- ---------- ----------
u1 2022 January         150        150
u1 2022 February        200        350
u1 2022 March           300        650


1 - 2

Post Details

Added on Jun 26 2022
2 comments
1,097 views