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