C# LINQ查询两个日期之间的十进制和的结果

C# LINQ查询两个日期之间的十进制和的结果,c#,linq,decimal,C#,Linq,Decimal,尝试在两个日期之间查询结果,获取列值,并将其相加为十进制数。不幸的是,每次我通过不同的日期-我得到所有的结果。在两次约会之间获得结果有问题。感谢您的帮助 以下是我现在拥有的: private static decimal QuerySales(DateTime startDateTime, DateTime endDateTime, IQueryable<ProductsSummary> summaries) { var relevantSummaries

尝试在两个日期之间查询结果,获取列值,并将其相加为十进制数。不幸的是,每次我通过不同的日期-我得到所有的结果。在两次约会之间获得结果有问题。感谢您的帮助

以下是我现在拥有的:

 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;
    }
私有静态十进制查询语句(DateTime startDateTime、DateTime endDateTime、IQueryable摘要)
{
var relevantSummaries=(来自摘要中的摘要
其中((summary.Date>=startDateTime.Date)和&(summary.Date x.NetSales)).ToList();
十进制销售=netSales.Any()?netSales[0]:0;
退货;
}
以下是解决方案:

 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;
    }
私有静态十进制查询语句(DateTime startDateTime、DateTime endDateTime、IQueryable摘要)
{
十进制销售额=0;
var relevantSummaries=(来自摘要中的摘要
其中((summary.Date>=startDateTime.Date)
&&(summary.DateSimpler,使用LINQ的:

  return summaries
   .Where(s => s.Date >= startDateTime.Date && s.Date <= endDateTime.Date)
   .Sum(s => s.NetSales)
返回摘要
其中(s=>s.Date>=startDateTime.Date和s.Date s.NetSales)

为什么每次都要对相关摘要中的记录执行
操作,然后选择
摘要
…?你是在对整个表(
摘要
)进行汇总,而不是使用
记录
记录
应该是单数吗?你的意思是只
相关摘要.Sum(s=>s.NetSales)