You should first make a query for getting all totals for each alias and date:
var flatteningQuery = from statement in doc.Root.Element("FlexStatements").Descendants("FlexStatement")
from summary in statement.Element("EquitySummaryInBase").Descendants("EquitySummaryByReportDateInBase")
select new
{
Alias = statement.Element("AccountInformation").Attribute("acctAlias").Value,
Date = summary.Attribute("reportDate").Value,
Total = summary.Attribute("total").Value
};
Then, you can group the result from the previous query for each date, getting the list of all alias-total pair corresponding to report dates:
var groupedQuery = from row in flatteningQuery
group row by row.Date into dateGroup
select new
{
Date = dateGroup.Key,
Values = from item in dateGroup
select new
{
Alias = item.Alias,
Total = item.Total
}
};