This site is currently read-only as we are migrating to Oracle Forums for an improved community experience. You will not be able to initiate activity until January 31st, when you will be able to use this site as normal.

    Forum Stats

  • 3,890,779 Users
  • 2,269,776 Discussions
  • 7,916,827 Comments

Discussions

Oracle APEX cumulative sum / running total over month and year

hiddenonearth
hiddenonearth Member Posts: 93 Red Ribbon

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.

Answers

  • SmithJohn45
    SmithJohn45 Member Posts: 828 Silver Badge

    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
    Stax Member Posts: 209 Silver Badge
    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
    
    
    
    SmithJohn45