另一个任务块!
基本上问题是,我无法按照降序排列价格,同时保持按国家/地区分组。
我知道它可能是如此简单,但我似乎无法得到它。
任何解决方案?
谢谢!
以下是问题: " 6。允许用户按国家/地区按降序排列前五种销售产品。 (10分)"
这是我的代码:
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
var q6 = (from t in northwind.Products
orderby t.UnitPrice descending
join o in northwind.Suppliers on t.SupplierID equals o.SupplierID
group t.UnitPrice by new {o.Country, t.UnitPrice} into grouped
select new
{
Output = grouped.Key
}).Take(5);
lbxTop5.ItemsSource = q6;
}
答案 0 :(得分:0)
" 6。允许用户按国家/地区按降序排列前五种销售产品。 (10分)"
我可以通过两种方式阅读。
A)获得前五大畅销产品,按国家对这5种产品进行分组。 要么 B)对于每个国家,前五大销售产品是什么?
我认为B更有意义,所以我会做那个。
此外 - 什么是最畅销的产品?这个国家与它有什么关系?我认为客户所在的国家比供应商更重要。另外 - 我认为OrderDetails中的数量可以告诉我哪些产品最畅销。注意:您的教师可能有其他想法,所以请自行使用这些假设。
from c in northwind.Customers
from o in c.Orders //all froms except first are calls to SelectMany (one to many)
from od in o.OrderDetails //navigational properties -> no need to write explicit joins
let p = od.Product // now we go many to one, so we don't need SelectMany
group od
by new {c.Country, Product = p } //anon grouping key
into productGroup
let country = productGroup.Key.Country
let product = productGroup.Key.Product
let quantity = productGroup.Sum(od2 => od2.Quantity)
group new {Product = product, Quantity = quantity} //anon group elements
by country
into countryGroup
select new {
Country = countryGroup.Key,
Summaries = countryGroup
.OrderByDescending(summary => summary.Quantity)
.ThenBy(summary => summary.Product.ProductId) //tiebreaker
.Take(5)
.ToList()
}