Как рассчитать среднюю оценку по данным в SQL
В базе данных у меня есть таблица Grade(stGrade, ndGrade, rdGrade, Avg)
,
Как я могу рассчитать Avg
в проекте asp.net, и stGrade, ndGrade, rdGrade
может быть нулевым
Пример, если Grade(80, 90, null)
затем Avg
= 85. Если Grade(80, 90, 100)
затем Avg
= 90
На мой взгляд, мой код:
@foreach (var item in Model.Grades){
<tr>
<td>@item.stGrade</td>
<td>@item.ndGrade</td>
<th>@item.rdGrade</th>
<th>@item.Avg</th>
</tr>
}
И в контроллере:
public ActionResult Result()
{
db = new GradeManagementEntities();
Student st = db.Students.Find(Session["id"].ToString());
return View(st);
}
Как я могу использовать Average()? В классе может быть, верно?
public Nullable<double> stGrade { get; set; }
public Nullable<double> ndGrade { get; set; }
public Nullable<double> rdGrade { get; set; }
public Nullable<double> Avg{get; set;}
public virtual Student Student { get; set; }
Но я не знаю, как его использовать.
1 ответ
public ActionResult Result()
{
db = new GradeManagementEntities();
Student st = db.Students.Find(Session["id"].ToString());
foreach(var s in st)
{
int total=0,avg=0;
if(s.ndGrade != null)
{
total++;
avg+=s.ndGrade;
}
if(s.stGrade!= null)
{
total++;
avg+=s.stGrade;
}
if(s.rdGrade!= null)
{
total++;
avg+=s.stGrade;
}
if(total>0)
{
s.avg= avg/total;
}
}
return View(st);