2017-11-08 14 views
1

件名に応じてグループ分けやランキングに役立つ必要があります。すべての科目に最初から最後まで生徒がいなければなりません。私はVB 2010別の列への参照を使用してグループ化しランク付けする方法

Dim TotaledRecords = From p In db.Assessments 
Where p.Class = cboclass.Text And p.Stream = cbostream.Text 
Select p 
Order By p.Total Descending 

For j = 1 To TotaledRecords.Count 
TotaledRecords.ToList(j - 1).Position = j 
Next 
db.SubmitChanges() 

して、以下のコードを使用しています 私はそれが主題に関して順位を再起動します。あなたは合計で最初にして、被写体によって注文する必要があります。この場合

答えて

0

は添付画像を参照してください。

Order By p.Subject, p.Total Descending 

あなたは件名でグループ化されたランクのフィールドを追加したい場合は、それを行うための一つの方法は次のようになります::

rank =(From r In db.Assessments _ 
    Order By r.Subject, r.Total _ 
    Where (r.Subject = p.Subject) _ 
    And (r.Total > p.Total) _ 
    Select r).Count + 1 _ 

...とLINQクエリだろう。このよう

Dim TotaledRecords = From p In db.Assessments _ 
Where p.Class = cboclass.Text And p.Stream = cbostream.Text _ 
Select p, _ 
rank =(From r In db.Assessments _ 
     Order By r.Subject, r.Total _ 
     Where (r.Subject = p.Subject) _ 
     And (r.Total > p.Total) _ 
     Select r).Count + 1 _ 
Order By p.Subject, p.Total Descending 
+0

これはうまくいきました。私は今、全ランキングで2つの同じ値に同じランクを与えるプログラムが必要です。もし2人が60人を得れば、それらのすべてに同じランクの価値を与えるべきです。 – RickAbbam

+0

"Subject"グループの同じ値のランク値を使用して回答を編集しました。 – Manel

関連する問題