In order to achieve the use case described above (exclude the first node value per year from the cumulative sum of sales) you can use the following approach when you have an unsorted data set:
1. Create a column with a year-month concatenation
case when [MONTH] in (10, 11, 12) then Concatenate([YEAR],[MONTH]) else Concatenate([YEAR],0,[MONTH]) end
2. In value axis custom expression of your visualization, you can rank by this period column and exclude values whose rank is 1 (i.e. the first node of Axis.X) and then sum up all values per year:
Sum(case when DenseRank([Period],"asc",[YEAR])>1 then [Sales] else 0 end) OVER (Intersect(AllPrevious([Axis.X]),NavigatePeriod([Axis.X],"Year",0,0)))
You can also use a different approach with the First() function if you know your data set is always going be in ascending/sorted order:
1. You can also extract value of first node using First function like
Sum([Sales]) then First([Value]) OVER (Intersect(All([Axis.X])))
2. Similarly, you can exclude the first node value from the cumulative sum of each year by simply subtracting the first value from the total cumulative sum:
Sum([Sales]) then Sum([Value]) OVER (Intersect(AllPrevious([Axis.X]),Parent([Axis.X]))) - first([Value]) OVER (Intersect(All([Axis.X]),Parent([Axis.X])))
Attached is the FirstNode.dxp showing all the above approaches.