日期:2014-05-18  浏览次数:20486 次

年报表汇总
我有一张数据表,包含
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综合




------解决方案--------------------
先把GETTIME属性按月份归档,然后再按照你的意思统计就是
先用GETTIME实例化一个DateTime对象date,然后比对这个date.Month就可以得到月份
剩下应该很好做了
------解决方案--------------------
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());//取得了这个月份的总重
}
}
------解决方案--------------------
指数的计算公式为:每条记录的指数 * 该记录的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])
------解决方案--------------------
sorry, -> 算术平均值