string sql = "select avg(FEScore) as AFEScore from [FEvaluation] group by CourseName='" + courseName + "' and FEDate between '" + DateTime.Now.AddDays(-segment) + "' and '" + DateTime.Now.Date.ToString() + "'";
上面是代码
我想将查询结果的平均分avg(FEScore)重新写入到 AFEScore字段中,这段代码应该怎么改??

解决方案 »

  1.   

    你这是前台应用程序中的语句,你可以把查到的avg(FEScore)取出来放在一个变量tt中,然后写个string sql = "update  [FEvaluation] set AFEScore ="+tt+" where ....."应该就可以了吧! 
      

  2.   

    --语句有问题
    如果是求指课程的平均分,去掉group by 即可,如果是有分班的,group by 后跟班级的字段名。
      

  3.   

    "select ModuleId, ModuleContent,avg(FEScore) as AFEScore from [FEvaluation] where CourseName='" + courseName + "' and FEDate between '" + DateTime.Now.AddDays(-segment) + "' and '" + DateTime.Now.Date.ToString() + "' group by ModuleContent";
    是错了,想根据ModuleContent分组,求出所有相同ModuleContent的平均分.
    另外,是后台的语句.
      

  4.   

    String SQL="insert into [FEvaluation](FEScore) select avg(FEScore) as AFEScore from [FEvaluation] where  CourseName='" + courseName + "' and FEDate between '" + DateTime.Now.AddDays(-segment) + "' and '" + DateTime.Now.Date.ToString() + "'  group by ...." 
      

  5.   

    我想把表中查询出来符合条件的记录中 有关FEScore字段的平均值,重新写入到表中的AFEScore中,并通过绑定gridview显示出来,这段代码就是后台绑定代码中的.
     public void bindFE()
        {
            string courseName = seleCourse.SelectedItem.Value;
            int segment = Convert.ToInt32(seleTime.SelectedItem.Value);
            
            string sql = "select ModuleId, ModuleContent,avg(FEScore) as AFEScore from [FEvaluation] where CourseName='" + courseName + "' and FEDate between '" + DateTime.Now.AddDays(-segment) + "' and '" + DateTime.Now.Date.ToString() + "' group by ModuleId";
            FE.DataSource = dataOperate.getDataset(sql, "FEvaluation");     //获取形成性评价数据源
            FE.DataKeyNames = new string[] { "ModuleId" };                 //设置主键字段  
            FE.DataBind();                                                //绑定GridView控件  
        }
      

  6.   

    update fevaluation set afescore=t.avf from (select modulecontent,avg(fescore) avf from 
    fevaluation where fedate between '' and '' group by ModuleContent) t inner join fevaluation 
    on fevaluation.ModuleContent=t.ModuleContent and fevaluation.fedate between '' and ''
      

  7.   

    这个好深奥 avf又是什么名堂??
      

  8.   


    如果我要改两个字段名的值, string sql0 = "insert into [FEvaluation](AFEScore,FETimes) select avg(FEScore),count(FEScore) from [FEvaluation] where CourseName='" + courseName + "' and FEDate between '" + DateTime.Now.AddDays(-segment) + "' and '" + DateTime.Now.Date.ToString() + "' group by ModuleId";
    这样写可不可以啊??