Account Ledger Running Balance Beast Mode

Hi All, 


I am having trouble coming up with. beast mode to create a running balance for an accoutn ledger. I have all of my charges and reciepts but i cannot create a running balance to show the correct totals. Any help with this would be much appreciated. I have atached a picture showing the card i am working with. As you can see all the balance column is doing is taking the charge or receipt total. Thank you very much! 






Best Answer

  • jaeW_at_Onyx
    jaeW_at_Onyx Budapest / Portland, OR 🟤
    Accepted Answer

    To troubleshoot this try to isolate where the error is.




        (CASE when `Type`='Charge' then `Amount Paid` else 0 end)+

       (CASE when `Type`='Receipt' then `Total Amount` else 0 end)*(-1)

    ) over (order by `Date Created` asc)) 


    figure out does this do what you expect it to do?


        (CASE when `Type`='Charge' then `Amount Paid` else 0 end)+

       (CASE when `Type`='Receipt' then `Total Amount` else 0 end)*(-1)



    I wouldn't expect it to... or at least, i believe you can simplify your case statement:




    when `Type`='Charge' then `Amount Paid`

    when `Type`='Receipt' then `Total Amount` * -1

    else null





    THEN Does this give the desired result?

    sum( sum( `Amount Paid`) over (order by `Date Created` asc)) 


    I wouldn't expect it to.


    sum( sum( `Amount Paid`) ) over (order by `Date Created` asc)


    Note how the parenthesis moved.



  • GrantSmith
    GrantSmith Indiana 🔴

    You'll want to do this utilizing an ETL. It's possible to do it in a Beast Mode with window functions however it would start on the first date that is filtered and not going back entirely in time to the start of your ledger. For example if you only displayed this year the beast mode variant would have $0 to start the year rather than the carry over from last year.


    Here's a prior solution to using MySQL ETL to get a running total you could look at.



  • jaeW_at_Onyx
    jaeW_at_Onyx Budapest / Portland, OR 🟤

    You can accomplis this window functions if you have them enabled in your instance, you may have to ask your CSM to 'enable window functions in beast modes'


    try the following beast mode:

    sum(sum(amount) over (order by date_column asc)


    just swap in the correct column names


    To overcome the ledger problem APPEND a snapshot row to your dataset that shows the lifetime balance at the start of the year.

  • Hi jae, 


    I will reach out to our CSM to see about window functions. 


    For your sum beast mode how would it look whem i am trying to sum (Charge) + (Receipt) on some of the line items. It not always just summing charges or receipts. Thanks 

  • I tried this: 


    sum(sum((CASE when `Type`='Charge' then `Amount Paid` else 0 end)+(CASE when `Type`='Receipt' then `Total Amount` else 0 end)*(-1)) over (order by `Date Created` asc)) 



    It was valid but my card is now not loading so i rposbably did something wrong.