2
我對linq很新,所以這個應該很容易回答,但是我很難找到答案。Linq to SQL:Group By和Sum()
我有以下LINQ語句,它執行一個簡單的LINQ查詢並分配所產生的值標籤的asp.net web窗體上:
Dim db As New MeetingManagerDataContext
Dim q = From s In db.vwRoomAvailabilities _
Where s.MeetingID = lblMeetingID.Text _
Select s.AllRequestedSingles, s.AllRequestedDoubles, s.AllBookedSingles, s.AllBookedDoubles, SinglesNeeded = s.AllRequestedSingles - s.AllBookedDoubles, DoublesNeeded = s.AllRequestedDoubles - s.AllBookedDoubles
lblSinglesRequested.Text = "Singles Requested: " & q.FirstOrDefault.AllRequestedSingles
lblSinglesBooked.Text = "Singles Booked: " & q.FirstOrDefault().AllBookedSingles
lblSinglesNeeded.Text = "Singles Needed: " & q.FirstOrDefault().SinglesNeeded
lblDoublesRequested.Text = "Doubles Requested: " & q.FirstOrDefault().AllRequestedDoubles
lblDoublesBooked.Text = "Doubles Booked: " & q.FirstOrDefault().AllBookedDoubles
lblDoublesNeeded.Text = "Doubles Needed: " & q.FirstOrDefault().DoublesNeeded
本來有打算是隻有一行結果你可以看到我使用FirstOrDefault()來獲取那個很好的單個值。但是設計已經改變,現在查詢可以返回多行。我現在需要按照上面的MeetingID分組,並對每個選定的列進行SUM(即s.AllRequestedDoubles)。
我發現很多分組和總結樣本,但沒有一個看起來很適合這種情況。
你能幫我修改上面的LINQ來總結結果值而不是顯示第一行結果值嗎?
因此,我需要爲每個列我需要寫一個這樣的個人陳述?沒有辦法在一個Select中對所有列進行求和? – David 2010-08-09 23:50:03
好吧,如果我明白你的問題,你不想將所有的列總和成一個單一的結果字段,你需要總結每列的記錄(總和單打req'd,總和單打預訂等)。因此你需要提供每一欄。考慮一下,如果你在原始T-SQL中編寫它,你仍然需要編寫SELECT SUM(a),SUM(b),SUM(c)等。 – RPM1984 2010-08-10 00:06:24
Right,sum(a),sum(b ),總和(三)是在一個單一的說法,這聽起來像你說我需要寫一個完全獨立的FROM/WHERE/GROUP/SELECT linq語句我需要總結每列。 你能在我的示例代碼中顯示2個列的總和嗎? – David 2010-08-10 00:17:17