LINQ запрашивает результаты для десятичной суммы между двумя датами - PullRequest
0 голосов
/ 10 октября 2018

Попытка запроса результатов между двумя датами, получение значения столбца и суммирование в десятичном виде.К сожалению, каждый раз, когда я прохожу разные даты - я получаю все результаты.Что-то не так с получением результатов между двумя датами.Любая помощь приветствуется.

Вот что у меня сейчас:

 private static decimal QuerySales(DateTime startDateTime, DateTime endDateTime, IQueryable<ProductsSummary> summaries)
    {
        var relevantSummaries = (from summary in summaries
                     where ((summary.Date >= startDateTime.Date) && (summary.Date <= endDateTime.Date))
                     select summary);

        var netSales = (from records in relevantSummaries
                      select summaries.Sum(x => x.NetSales)).ToList();

        decimal sales = netSales.Any() ? netSales[0] : 0;
        return sales;
    }

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

проще, используя синтаксис метода для LINQ:

  return summaries
   .Where(s => s.Date >= startDateTime.Date && s.Date <= endDateTime.Date)
   .Sum(s => s.NetSales)
0 голосов
/ 10 октября 2018

Вот решение:

 private static decimal QuerySales(DateTime startDateTime, DateTime endDateTime, IQueryable<ProductsSummary> summaries)
    {
        decimal sales = 0;
        var relevantSummaries = (from summary in summaries
                     where ((summary.Date >= startDateTime.Date) 
                            && (summary.Date <= endDateTime.Date))
                     select summary.NetSales);

        if (relevantSummaries != null)
        {
           sales = relevantSummaries.Sum();
        }

        return sales;
    }
...