我有一个typedDataset(ds)及其数据表(dt)。数据表具有列Date
(ttmmyyy)和Worktime
。我想按月汇总工作时间。我已经完成了总结工作时间的工作
Dim sum = dt.AsEnumerable().Sum((Function(x) x.Worktime))
我需要按月分组帮助。
最佳答案
我用您的字段创建了一个表,以下查询很好用:
Dim query = From row In dt
Group row By VarDate= row.Field(Of DateTime)("Date") Into MonthGroup = Group
Select New With {
Key VarDate,
.Worktime = MonthGroup.Sum(Function(r) r.Field(Of Int32)("Worktime"))
}
使用变量
VarDate
,因为Date是为其自己的类保留的。输出:
修订日期:10/15/2013工作时间:150
修订日期:10/16/2013工作时间:180
编辑:
要获得输出,只需使用:
For Each obj In query
Dim datet = obj.VarDate
Dim WorkH = obj.Worktime
Next
为了避免在使用linq时声明类型,请在vb.net文档的第一行中插入以下行:
option infer on
(因此您可以使用dim datet = obj.Vardate)而不声明类型。就像C#中的var关于vb.net - VB.NET和Linq:汇总数据表列,并在另一列中按日期分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19402993/