2012-03-10 64 views
0

我有一個數據集,看起來像這樣:方法從數據集中獲得的摘要視圖

日期 類別 率 數量

將有0或1點的行對於每個類別對於任何給定日期。

將此數據轉換爲摘要類型視圖的好方法是什麼?

例如:

日期 Category1_Rate Category2_Rate Category3_Rate Category4_Rate

我有分類固定數量。

我正在使用linq。

這裏是一個例子。如果我有這樣的數據:

Date Category Rate Quantity 
1/1/12 toys  15  12 
1/1/12 games  20  20 
1/1/12 dvds  18  30 
1/2/12 toys  19  13 
1/2/12 dvds  20  17 

我想產生一個總結,看起來像這樣:

Date  toys_rate games_rate dvds_rate 
1/1/12 15   20   18 
1/2/12 19   null   20 

回答

2

可能是這樣的

var summarydata = 
    from r in table 
    group r by r.Date into g 
    select new 
    { 
     Date = g.Key, 
     ToysRate = g.Where(e=> e.Category == "toys").Count() > 0 ? 
         (int?)g.Where(e=> e.Category == "toys").First().Rate : null, 
     GamesRate = g.Where(e=> e.Category == "games").Count() > 0 ? 
         (int?)g.Where(e=> e.Category == "games").First().Rate : null, 
     DvdsRate = g.Where(e=> e.Category == "dvds").Count() > 0 ? 
         (int?)g.Where(e=> e.Category == "dvds").First().Rate : null 
    }; 

注意我沒有測試過這種作爲我目前不能訪問C#環境。

編輯 - 增加了可空的int類型轉換,以正確設置生成的匿名類型中各種費率字段的類型。