3
这是我试图解决的问题。我有3个数据库表 - 销售,客户和时间。一个销售记录链接到一个客户记录和一个时间记录。我想,仅在1996年,查看按地区划分的总销售额(客户与特定区域相关),以下是进一步的划分:假期,非假期,平日和周末。这里是我迄今粗略的查询,我试图在评论中添加。在使用闭包的LINQ语句中,是否可以在闭包中指定where子句?
var totalSales =
from s in sales
where s.Time.Year = 1996
group s by s.Customer.Region into g
select new { Region = g.Key,
Holidays = g.Sum(s => s.Total_Amount), // WHERE (s => s.Time.Holiday_flag = true)
NonHolidays = g.Sum(s => s.Total_Amount), // WHERE (s => s.Time.Holiday_flag = false)
Weekdays = g.Sum(s => s.Total_Amount), // WHERE (s => s.Time.Weekday_flag = true)
Weekends = g.Sum(s => s.Total_Amount)}; // WHERE (s => s.Time.Weekday_flag = false)
为此,我需要能够在每个闭包中进一步限制结果。这可能吗?我是否需要重构查询?我当然可以通过将其分解为4个单独的查询来完成此任务,但是在一个查询中完成这项工作真的很不错。
谢谢。
+1 - 我只是工作这件事。一如既往,太快............ – 2011-03-03 17:25:05
这很完美,非常感谢。 – rybosome 2011-03-03 17:30:25