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)
?