1
我有一個typedDataset(ds)及其數據表(dt)。該數據表具有列Date
(ttmmyyy)和Worktime
。我想按月對工作時間進行總結。我已經完成了總結工作時間與VB.NET&Linq:在另一列中求和數據列和按日期分組
Dim sum = dt.AsEnumerable().Sum((Function(x) x.Worktime))
我需要按月幫助組。
我有一個typedDataset(ds)及其數據表(dt)。該數據表具有列Date
(ttmmyyy)和Worktime
。我想按月對工作時間進行總結。我已經完成了總結工作時間與VB.NET&Linq:在另一列中求和數據列和按日期分組
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
因爲日期是保留它自己的類。
輸出:
Vardate:2013年10月15日烹飪時間:150
Vardate:2013年10月16日烹飪時間: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#
嗨!首先謝謝你的回覆!你是如何得到輸出的?我試過:對於每個sumq在查詢MsgBox(「你工作過&&sumq.Worktime.ToString&」在月「&sumq.VarDate.ToString)接下來,但我得到的結果是每一天不按月分組。 P.S .:我用小數改變了Int32,但我認爲這不是不同輸出的原因。 – ruedi
更新了我的答案 –
嗨!迭代查詢(你添加的代碼)給了我每個小時的時間,而不是按月分組。爲了顯示,我爲每個環境插入了msgbox(datet.tostring&「」&WorkH.tostring)。 – ruedi