尝试查询两个日期之间的结果,获取列值,然后将其求和成小数。不幸的是,每次我传递不同的日期时,我都会得到所有结果。在两个日期之间获取结果有些问题。任何帮助表示赞赏。
这就是我现在拥有的:
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;
}
答案 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;
}
答案 1 :(得分:0)
更简单,对LINQ使用Method Syntax:
return summaries
.Where(s => s.Date >= startDateTime.Date && s.Date <= endDateTime.Date)
.Sum(s => s.NetSales)