Как рассчитать среднюю оценку по данным в 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);
Другие вопросы по тегам