teradata, reset when, EOD_BAL_AM, running balance

Analytics
Highlighted
Visitor

teradata, reset when, EOD_BAL_AM, running balance

I am going through some code. I still do not understand the below code. I do understand the second code for RUN_BAL_AM but I do not understand the below code for EOD_BAL_AM. Can someone please explain how this is calculating the EOD_BAL_AM? I have seen an explanation of RESET WHEN in Teradata which I kind of understand. However, I still do not understand why this takes MAX of RUN_BAL_AM. I would think this should take the running balance at the end of the day. I am struggling to understand this code. Some background: X.CURR_BAL_AM is the balance at the beginning of the statement cycle. Thanks

 

 

 

SELECT
                Y.*,
                MAX(Y.RUN_BAL_AM) OVER (
                    PARTITION BY Y.ACCT_DIM_NB
                        ORDER BY  Y.DAY_TIME_DIM_NB, Y.TXN_POSTING_SEQ 
                            RESET WHEN Y.CS_TXN_CD NOT IN ('072','075','079','107','111') 
                                ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS  EOD_BAL_AM

            FROM ( 
                SELECT 
                    X.*,
                    X.CURR_BAL_AM + 
                    SUM(X.TXN_AM*X._PST_) OVER (
                        PARTITION BY X.ACCT_DIM_NB , X.TIME_DIM_NB 
                            ORDER BY X.DAY_TIME_DIM_NB, X.TXN_POSTING_SEQ 
                                ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS RUN_BAL_AM