【发布时间】:2011-11-15 02:26:24
【问题描述】:
我有以下数据表,我需要按季度对其进行分组。我基本上需要显示 1 月总计,其中包括 1 月 2 月 3 月,然后我需要显示 4 月总计,其中包括 4 月 5 月 6 月等。我还需要以相同的顺序显示非高峰期和年份
【问题讨论】:
-
您应该包含更多关于底层数据源的信息。这是 Linq 2 SQL 吗?英孚?阿多? POCO?
标签: c# linq linq-to-sql
我有以下数据表,我需要按季度对其进行分组。我基本上需要显示 1 月总计,其中包括 1 月 2 月 3 月,然后我需要显示 4 月总计,其中包括 4 月 5 月 6 月等。我还需要以相同的顺序显示非高峰期和年份
【问题讨论】:
标签: c# linq linq-to-sql
如果您可以“整理”您的数据,以便将月份表示为 0 到 11 的整数,那么您可以通过在int(month / 3) 上进行分组来将它们分组为季度。 Jan(0), Feb(1), March(2) div 3 all = 0. April(3), May(4), June(5) div 3 all = 1, etc. 季度编号 (Q1, Q2,等)是int(month / 3) + 1
如果月份以字符串形式存储在数据库中,您必须编写一个映射函数来将字符串名称减少为月份编号(switch 语句),并祈祷这个应用程序永远不会被其他任何人使用或看到比说英语的人。 ;>
【讨论】:
var results2 = (from c in results orderby c.Month group c by new {Month = (c.Month -1) / 3, c.Year } into g select g);