I can't comment within original question but it looks like your selecting all the rows from your MaySales table, which I'm assuming is for the month of May. In your subquery, and given your intention is to group by month, you have no month operator.
SELECT year(date) as BranchYear, month(date) as BranchMonth, branch, CAST(avg(TOTAL) AS int)
FROM MaySales
GROUP BY year(date), month(date), Branch
Try something like the above to get your data down to a monthly granularity. Once you understand this, you'll be in a much better position to format your data on the assumption that you want to display your normal daily totals with your monthly total included.
Further to the above, I would move away from just having a 'MaySales' table as this would imply that you would have a table for every month of the year. What would happen then if data would extend for years? Have a 'BranchSales' table with DATE, branch, TOTAL columns which I'd assume are for daily totals and then you are in a position to calculate average totals for any time period you wish greater than a day including weekly, monthly, quarterly and yearly totals