datatable 按时间分组
由于数据库已经写死动不了,要不然用SQL很容易搞定。从数据库读出来的datatable是这样的结构
时间 用户名 金额
2008-05-05 18:07:57 aaa 10
2008-05-05 01:07:57 aaa 15
2008-05-06 15:00:20 aaa 5
2008-05-07 18:00:02 aaa 8
2008-05-08 19:08:50 aaa 20
2008-05-08 18:27:50 aaa 30
2008-05-08 19:08:00 aaa 50
我要得到以下结果,就是分组 把当天的金额加起来
当天时间 用户名 当天金额
2008-05-05 aaa 25 <----这个就是10+15的结果
2008-05-06 aaa 5
2008-05-06 aaa 8
2008-05-08 aaa 100 <----20+30+50
不知道 dataview 之类的能不能做到以上要求。 --------------------编程问答-------------------- 从数据库读数据,将时间字段分成日期各时间两字段,然后用 Group By关键字达到日期分组,SUN(金额)就可以达到你要的数据集 --------------------编程问答-------------------- http://support.microsoft.com/default.aspx?scid=kb;en-us;326145 --------------------编程问答-------------------- 赞个 --------------------编程问答--------------------
这样的话速度还不如重新查询为.. --------------------编程问答-------------------- datatable.DefaultView.ToTable(true,"col")找出不重复的时间,
再遍历时间用datatable.Compute("Sum(金额)", "时间=时间")
不知道用取年月日的函数行不行,你试试吧,没测试过
--------------------编程问答-------------------- 为什么不在读数据库的时候就分给好呢? --------------------编程问答-------------------- 由于数据库已经写死动不了,要不然用SQL很容易搞定。
-------------------------------------------
表应该不能改了,但是sql语句可以改吧,总不能sql语句都不能改吧.
用Group By日期字段 分组,SUN(金额) --------------------编程问答-------------------- 有linq就方便很多了 --------------------编程问答-------------------- 怎么可以实现,但是比较麻烦
自己构造一datatable,然后从原由的datatable中读取每日的数据插入到该datatable中
--------------------编程问答-------------------- 好像dataview不支持group by ,
效率最好的还是应该在数据库搞定.不然要sql语句干嘛,
自己写个group by 出行. --------------------编程问答-------------------- 比较难搞。
补充:.NET技术 , ASP.NET