年报表汇总
我有一张数据表,包含
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, -> 算术平均值