2013-04-20 3 views
1

Другой блок назначения!Linq to SQL - Заказ по номеру

В основном проблема заключается в том, что я не могу получить свой результат для заказа цены в порядке убывания при сохранении ее сгруппированной по стране.

Я знаю, что это, наверное, что-то настолько простое, но я просто не могу понять.

Любые решения?

Спасибо!

Вот вопрос: «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

«6. Разрешить пользователю просматривать пять лучших продаваемых продуктов в порядке, сгруппированные по стране по убыванию. (10 баллов)»

Я мог бы прочитать это два пути.

A) Получите пятерку самых продаваемых продуктов, объедините эти 5 продуктов по странам. OR 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() 
} 
+0

Выход в этом заканчивается как «System.Collections.Generic.List'1» Это для резюме! –

Смежные вопросы