2013-10-16 106 views

回答

6

我創建了一個表的田地,下面的查詢工作很好:

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#

+0

嗨!首先謝謝你的回覆!你是如何得到輸出的?我試過:對於每個sumq在查詢MsgBox(「你工作過&&sumq.Worktime.ToString&」在月「&sumq.VarDate.ToString)接下來,但我得到的結果是每一天不按月分組。 P.S .:我用小數改變了Int32,但我認爲這不是不同輸出的原因。 – ruedi

+0

更新了我的答案 –

+0

嗨!迭代查詢(你添加的代碼)給了我每個小時的時間,而不是按月分組。爲了顯示,我爲每個環境插入了msgbox(datet.tostring&「」&WorkH.tostring)。 – ruedi