我有一张数据表,包含
ID    GETTIME        weight       指数1      指数2
1   2007-07-24:11:20  100         0.33        0.32
2   2007-07-26:11:20  100         0.50        0.32
3   2007-08-24:11:20  100         0.33        0.32
4   2007-08-25:11:20  100         0.30        0.40
我要做成一个年报表,显示为
 
 项目         weight      指数1       指数2
7月数据        200       0.41         0.32
8月数据        200       0.31         0.36请问该怎么做呀.
指数的计算公式为:每条记录的指数 * 该记录的weight / 汇总记录的weight综合

解决方案 »

  1.   

    先把GETTIME属性按月份归档,然后再按照你的意思统计就是
    先用GETTIME实例化一个DateTime对象date,然后比对这个date.Month就可以得到月份
    剩下应该很好做了
      

  2.   

    public void Resolver(DataSet _ds)
    {
    int[] months=new int[12];
    foreach(DataRow dr in _ds.Tables[0].Rows)
    {
    DateTime MyDateTime = DateTime.Parse(dr["GETTIME"].ToString());//将字符串时间转换成DateTime对象
    months[MyDateTime.Month]+=int.Parse(dr["weight"].ToString());//取得了这个月份的总重
    }
    }
      

  3.   

    指数的计算公式为:每条记录的指数 * 该记录的weight / 汇总记录的weight综合======这个不理解,只有按 几何平均值 算了
    SELECT DatePart(mm, MAX([GETTIME])) + '月数据' AS 项目,  SUM(weight) AS TotalWeight,  SUM(指数1*weight)/TotalWeight AS 指数1, SUM(指数2*weight)/TotalWeight AS 指数2 
    FROM tbl 
    GROUP BY DatePart(mm, [GetTime])
      

  4.   

    sorry, -> 算术平均值