linq語句中多個記錄合成一條記錄

2021-08-09 23:07:14 字數 958 閱讀 8523

小菜先說一下環境應用,在福分系統中每天都有加分的記錄,並且每次加分的分值是不同的。現在有乙個這樣的需求就是按照一定的時間段,求出某個人的所加的分值。並且按照分值排名。

該怎麼著手呢?先求出這段時間的所有的記錄,這個比較簡單。難的地方在,這怎麼通過人名(id),得到特定人的幾條記錄,然後得到總分,並且是不定向的幾個人。

想不到linq語句很強大,它封裝了這樣的方法。來看一下!

listt = (from test in listtest   //在這裡進行一些改正 liststarttimefin

group test by test.classmateid into tt

select new classifiysummodel()

).tolist();

from test in listtest,listtest指的就是通過時間篩選的資料記錄。group test by test.classmateid into tt。的意思就通過這個人的id,來化分成乙個組。是相同id的人就同歸到乙個組了。

然後mcoin = tt.sum(p => p.mcoin),的意思是把分值求和。

classmatename = tt.select(y => y.classmatename).first(),這個的意思是取這個組中classmatename的第乙個記錄。這樣就可以把幾條記錄合成一條記錄了。

再來分析一下排名,按照總分排名之後,取乙個字段用作盛放排名資訊。第乙個記錄的排名就是1.通過for迴圈來賦值,如果出現相同的分數。就讓上乙個的排名賦值給這個人。

看一下**。

//改變泛型狀態新增排名

for (int i = 0; i < listordered.count; i++)

else //判斷存在積分相同,名次和上面的乙個人一樣

else

}}

就是這樣,謝謝大家的鼓勵。

上一條記錄下一條記錄

select top 1 from 表 where id 當前id order by id desc select top 1 from 表 where id 當前id order by id desc 上一條記錄 select top 1 blogid from gcc bloginfo wher...

mysql一條語句update多條記錄

通常情況下,我們會使用以下sql語句來更新字段值 update mytable set myfield value where other field other value 但是,如果你想更新多行資料,並且每行記錄的各字段值都是各不一樣,你會怎麼辦呢?剛開始你可能會想到使用迴圈執行多條update...

SQL語句隨機抽取一條記錄

我們經常想在乙個資料表中隨機地選取出資料來,比如隨機生成考試試卷等。利用 sql server 的 newid 方法就可以很輕鬆地達到這個目的。newid 方法返回乙個 guid,如 ee95a489 b721 4e8a 8171 3ca8cb6ad9e4 在 select 表的時候,再增加一列為 ...