SQL平均的TermID和yearID

这是我的SQL代码包含的表:tblstudentdetail和tblstudentinfo

 SELECT distinct  TblstudentInfo.FirstName +''+ TblstudentInfo.LastName as Name,TblstudentInfo.StudentID,TblstudentInfo.YearID,TblstudentInfo.Dualcredits,TblstudentInfo.DC_Classes,TblstudentInfo.DC_GPA,tblStudentDetail.StatusID,TblstudentInfo.actScore,tblStudentDetail.YearID,tblStudentDetail.TermID,tblStudentDetail.GPA
FROM TblstudentInfo

left join tblStudentDetail on TblstudentInfo.StudentID = tblStudentDetail.StudentID
order by  name

结果:

Name StudentID  YearID  Dualcredits DC_Classes  DC_GPA  StatusID    actScore    YearID  TermID   GPA
Aaron   124             9   NULL        NULL     NULL     1            17        10     1      2.901
Aaron   124             9   NULL        NULL     NULL     1            17        10     2      3.171
Aaron   124             9   NULL        NULL     NULL     1            17        11     1      2.31
Aaron   124             9   NULL        NULL     NULL     1            17        11     2      3.31
Debbie  2344            7   NULL        NULL     NULL     1            19        9      1      4.31
Debbie  2344            7   NULL        NULL     NULL     1            19        10     1      4.31

如何平均平均GPA?我想要这样的结果:

Aaron   124             9   NULL        NULL     NULL     1            17      2.923
Debbie  2344            7   NULL        NULL     NULL     1            19       4.31
bush200 回答:SQL平均的TermID和yearID

使用聚合:

 SELECT si.FirstName +''+ si.LastName as Name,si.StudentID,si.YearID,si.DualCredits,si.DC_Classes,si.DC_GPA,si.StatusID,si.ActScore,AVG(d.GPA)
FROM TblstudentInfo si LEFT JOIN
     tblStudentDetail d
     ON si.StudentID = d.StudentID
GROUP BY si.FirstName,si.LastName,si.YearID;
,

只需在GPA上使用AVG()函数,然后按其余列进行分组

protected void Page_Load(object sender,EventArgs e)
{
    if (con.State == ConnectionState.Open)
    {
        con.Close();
    }
    con.Open();
}       
protected void fname_TextChanged(object sender,EventArgs e)
{
    CultureInfo cI = Thread.CurrentThread.CurrentCulture;
    TextInfo textInfo = cI.TextInfo;
    fname.Text = textInfo.ToTitleCase(fname.Text);
}
protected void lname_TextChanged(object sender,EventArgs e)
{
    CultureInfo cI = Thread.CurrentThread.CurrentCulture;
    TextInfo textInfo = cI.TextInfo;
    lname.Text = textInfo.ToTitleCase(lname.Text);
}
protected void register_Click(object sender,EventArgs e)
{
    if (checkemail() == false && checkuname() == false)
    {
        SqlCommand cmd = con.CreateCommand();
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "insert into Users values('" + fname.Text + "','" + lname.Text + "','" + email.Text + "','" + uname.Text + "','" + password.Text + "')";
        cmd.ExecuteNonQuery();
    }
    if(checkemail() == true)
    {
        chkmail.Visible = true;
        mailerror.Text = "Email Address already Registered";
    }
    if(checkuname() == true)
    {
        chkuname.Visible = true;
        unameerror.Text = "Username is taken!";
    }

}
private Boolean checkemail()
{
    Boolean emailavailable = false;
    SqlCommand cmd = con.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "select * from Users where emailId='" + email.Text + "'";
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = cmd;
    DataSet ds = new DataSet();
    da.Fill(ds);
    if (ds.Tables[0].Rows.Count > 0)
    {
        emailavailable = true;
    }
    return emailavailable;
}
private Boolean checkuname()
{
    Boolean unameavailable = false;
    SqlCommand cmd = con.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "select * from Users where username='" + uname.Text + "'";
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = cmd;
    DataSet ds = new DataSet();
    da.Fill(ds);
    if (ds.Tables[0].Rows.Count > 0)
    {
        unameavailable = true;
    }
    return unameavailable;
}
,

查看结果您可以使用AVG()并按

分组
 SELECT distinct  
    TblstudentInfo.FirstName +''+ TblstudentInfo.LastName as Name,TblstudentInfo.StudentID,TblstudentInfo.YearID,TblstudentInfo.DualCredits,TblstudentInfo.DC_Classes,TblstudentInfo.DC_GPA,tblStudentDetail.StatusID,TblstudentInfo.ActScore,avg(tblStudentDetail.GPA)
FROM TblstudentInfo
LEFT JOIN tblStudentDetail ON TblstudentInfo.StudentID = tblStudentDetail.StudentID
GROUP BY TblstudentInfo.FirstName +''+ TblstudentInfo.LastName as Name,TblstudentInfo.ActScore
order by  name
本文链接:https://www.f2er.com/3164174.html

大家都在问