Получение общей суммы путем группировки в месяц в Entity Framework - PullRequest
0 голосов
/ 12 апреля 2020

Мне нужно написать запрос SQL в Entity Framework, чтобы получить общую сумму расходов в формате массива (т.е. мне нужно сгруппировать суммы по месяцам).

Я пробовал эту сущность Фреймворковый запрос, но он не сработал:

double[] Amountdate;

using (IncomeExpenseManagementDBEntities incomeExpenseManagementDB = new IncomeExpenseManagementDBEntities())
{
    Amountdate = incomeExpenseManagementDB
                     .Expenses
                     .Select(e => e.Amount)
                     .Where(e => e.userID == IncomeExpenseTool.user.Id)
                     .GroupBy(e => e.Date.Month);
}

Оцените любой вклад в это

1 Ответ

0 голосов
/ 12 апреля 2020

Вам нужно сделать последний выбор, а затем вам нужно агрегировать значение, взяв сумму.

var amountsByMonth = incomeExpenseManagementDB.Expenses
    .Where(e => e.userID == IncomeExpenseTool.user.Id)
    .GroupBy(e => e.Date.Month)
    .Select(grp => new 
    { 
        Month = grp.Key, 
        TotalAmount = grp.Sum(x => x.Amount) 
    })
    .ToList();

Это приведет к сумме суммы за каждый месяц, который представлен в ваша БД (другими словами, если у вас нет данных за март, вы не получите результат за март).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...