当前位置:编程学习 > C#/ASP.NET >>

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 --------------------编程问答--------------------
引用 2 楼 suosa 的回复:
http://support.microsoft.com/default.aspx?scid=kb;en-us;326145
赞个 --------------------编程问答--------------------
引用 2 楼 suosa 的回复:
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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,