2016-10-30 15 views
0

ちょっと私は何の意味も持てないlinqクエリを持っています。特定の会社(店舗のコレクション)の販売データを得るためにテーブルから引き出します。複数のGroupByを使用したLinqクエリ

販売表は個々の販売アイテムのコレクションであり、複数の販売アイテムは1つの請求書に入れることができます。私はストアで1日分の売上を並べ替えるクエリを作成し、その日のそのストアの総計をカウントし、その日のそのストアの平均請求額を返します。ここで

は、私が持っているものの始まりで、これまで

//get list of all stores bill count/average bill 

     FactSales.Where(d => d.DateKey >= 20130920).Where(d => d.DateKey <= 20130920) 
.Where(c => c.CompanyID == 4).GroupBy(g=>new{g.StoreID, g.BillID}).Select(g=>new{Store = g.Key.StoreID, Amount = g.Sum(a => a.Amount).Value }) 

これは私のすべての個々の請求書のリストを取得しますが、私は含まれていますリスト内の各ストアの平均値と法案のカウントを得るのですか。 storeID、Avg Bill(すべての店舗請求書/請求額の合計)および各店舗の請求数?

私はこれをしばらく読んでいて、多くの記事を読みました。私は非常に明白な何かを見逃しているに違いありません。

ご協力いただきますようお願い申し上げます。

答えて

1
FactSales 
    // filter sale positions by day 
    .Where(d => d.DateKey >= 20130920 && d.DateKey <= 20130920) 
    // filter sale positions by company 
    .Where(c => c.CompanyID == 4) 
    // group values by store and bill so each row will contains all sales in one bill 
    .GroupBy(g=>new { g.StoreID, g.BillID }) 
    // calculate total amount for each bill 
    .Select(g=>new { Store = g.Key.StoreID, Bill = g.Key.BillID, Amount = g.Sum(a => a.Amount).Value }) 
    // group bills by store so each row will contains all bills with total amount for this store 
    .GroupBy(g => g.Store) 
    // calculate bills count and avg amount for this store 
    .Select(g => new { Store = g.Key, Bills = g.Count(), AvgBill = g.Average(x => x.Amount) }); 

g.Sum(a => a.Amount).ValueValueプロパティが含まれているべきではないとあなただけのg.Sum(a => a.Amount)を行うことができます私の事。

+0

ありがとうございましたVadimとても役に立ちました! – Nate58

0

私はこれをTHKも動作します:

var result = FactSales 
        .Where(d => d.DateKey >= 20130920 && d.DateKey <= 20130920) 
        .Where(c => c.CompanyID == 4) 
        .GroupBy(t => new { t.StoreId }) 
        .Select(X => new 
         { 
          Store = X.Key.StoreId, 
          Sum = X.Sum(t => t.Amount), 
          Bills = X.Count(), 
          average = X.Sum(t => t.Amount)/X.Count() 
         }); 

ではありません。

関連する問題