0
我試圖使用Linq從受歡迎的NorthWind
DB生成以下報告。它應該由Customer
,OrderYear
組成。使用Linq從Northwind DB生成報告
CustomerName OrderYear Amount
我已經使用下表Customer
,Order
和Order Details
。 到目前爲止,這是我所做的。
NorthwindDataContext north = new NorthwindDataContext();
var query = from o in north.Orders
group o by o.Customer.CompanyName into cg
select new
{
Company = cg.Key,
YearGroup = ( from y in cg
group y by y.OrderDate.Value.Year into yg
select new
{
Year = yg.Key,
YearOrdes = yg
}
)
};
foreach (var q in query)
{
Console.WriteLine("Customer Name : " + q.Company);
foreach (var o in q.YearGroup)
{
Console.WriteLine("Year " + o.Year);
Console.WriteLine("Sum " + o.YearOrdes.Sum(yo => yo.Order_Details.Sum(yd=> Convert.ToDecimal(yd.UnitPrice* yd.Quantity))));
}
Console.WriteLine();
}
它給了我預期的結果。我通過在後端運行t-sql
進行了比較。但是,我有2個問題。
- 在Inner
foreach
中,第2條語句生成總和。這是否正確?或者有更好的嗎? - 如何獲得Linq查詢本身的總和。
謝謝@Marcin – 2013-03-11 17:37:09