Tag: 交叉表

Linq:如何将行转换为带有计数的列(交叉表数据)?

我想我需要一种使用C#和Linq执行数据透视表或交叉表的方法,列数不确定。 但是,我会添加一些开始细节以了解它的去向。 想象一下有两个字段的表: string EventName; Datetime WhenItHappend; 我们想生成一个报告,如下面的示例,我们按EventName进行分组,然后有一系列列来计算一些日期和时间帧数。 困难显然是可变数量的列。 Sport Jan 2010 Jan 2009 2009年 2月2010年 2月2009 篮球 26 18 23 16 曲棍球 28 19 25 18 游泳 52 45 48 43 客户可以为报告创建任意数量的命名事件计数器。 function始终相同:“名称”,“开始”,“结束”。 有没有什么方法可以将它组装成C#中的单个linq IQueryable结果? 就SQL而言,我尝试创建一个日期范围表{TimeFrameName,begin,end}并将其连接到上面的表,其中begin <= whenItHappened和whenItHappened <= end,这产生了一组很好的{EventName,TimeFrameName}然后做了一个count(*),但仍然留下了如何转换数据,使行成为列。