从数据集获取摘要视图的方法

时间:2012-03-10 00:01:47

标签: linq

我有一个如下所示的数据集:

日期 类别 率 量

对于任何给定日期,每个类别将有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  

1 个答案:

答案 0 :(得分: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强制转换,以便在生成的匿名类型中正确设置各种费率字段的类型。