1

LINQ には別の問題があるので、私がやろうとしているのは、最高のセールスマンのリストを作成することです。の私のテーブルはsold_items、このようになります

[ID]
[Name]
[Price]
[Sold_date]
[Salesman_ID]

との表Salesmans

[ID]
[Login]
[First_name]
[Surname]

個々のセールスマンが販売したすべての価格を合計したいのですが、たとえば、今月のベスト、今週のベストなど、日付ごとにグループ化するオプションもあります

var query1 = from s in context.Archive
             //join us in context.Users
             //on s.Salesman.ID equals us.ID
             group s by s.Salesman.ID
             into g
             orderby g.Sum(o => o.Price) descending
             select new
             {
                 Salesman_ID = g.Key,
                 Sale = g.Sum(o => o.Price),
             };

それはうまくいきますが、ユーザーをテーブルからsalesman_ID追加する方法しか得られませんか?First_nameSurnameSalesmans

4

3 に答える 3

2

次のようなことができます。

var query1 = 
    from s in context.Archive
    group s by s.Salesman into g
    orderby g.Sum(o => o.Price) descending
    select new
    {
        Salesman_ID = g.Key.ID,
        Salesman_First_name = g.Key.First_name,
        Salesman_Surname = g.Key.Surname,
        Sale = g.Sum(o => o.Price),
    };

特定の日付に限定するには、次のようにします。

var query1 = 
    from s in context.Archive
    where s.Sold_date >= minDate && s.Sold_date <= maxDate
    group s by s.Salesman into g
    orderby g.Sum(o => o.Price) descending
    select new
    {
        Salesman_ID = g.Key.ID,
        Salesman_First_name = g.Key.First_name,
        Salesman_Surname = g.Key.Surname,
        Sale = g.Sum(o => o.Price),
    };
于 2013-11-04T16:50:38.100 に答える
0

現在の行をこれに変更します。

select new { Salesman_ID = g.Key, Salesman_First_Name = g.Key.First_name };
于 2013-11-04T16:51:35.023 に答える
0

複数の列でグループ化できます(取得するすべての列)

 var query1 = from s in context.Archive
                         //join us in context.Users
                         //on s.Salesman.ID equals us.ID
                          group s by new    // group by multiple columns
                          {
                            s.Salesman.Id,
                            s.first_name,
                             s.surname,
                          } into g                     
                        orderby g.Sum(o => o.Price) descending
                        select new
                       {
                        Salesman_ID = g.Key,
                        FirstName = g.first_name,
                        Surname = g.surname,
                        Sale = g.Sum(o => o.Price),
                    };
于 2013-11-04T16:52:55.253 に答える