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