datatable 按时间分组

问题描述

由于数据库已经写死动不了,要不然用SQL很容易搞定。从数据库读出来的datatable是这样的结构时间用户名金额2008-05-0518:07:57aaa102008-05-0501:07:57aaa152008-05-0615:00:20aaa52008-05-0718:00:02aaa82008-05-0819:08:50aaa202008-05-0818:27:50aaa302008-05-0819:08:00aaa50我要得到以下结果,就是分组把当天的金额加起来当天时间用户名当天金额2008-05-05aaa25<----这个就是10+15的结果2008-05-06aaa52008-05-06aaa82008-05-08aaa100<----20+30+50

不知道dataview之类的能不能做到以上要求。

解决方案

解决方案二:
从数据库读数据,将时间字段分成日期各时间两字段,然后用GroupBy关键字达到日期分组,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语句都不能改吧.用GroupBy日期字段分组,SUN(金额)
解决方案九:
有linq就方便很多了
解决方案十:
怎么可以实现,但是比较麻烦自己构造一datatable,然后从原由的datatable中读取每日的数据插入到该datatable中
解决方案十一:
好像dataview不支持groupby,效率最好的还是应该在数据库搞定.不然要sql语句干嘛,自己写个groupby出行.
解决方案十二:
比较难搞。

时间: 2024-12-24 03:35:52

datatable 按时间分组的相关文章

sql server-SQLServer 中如何按一定间隔时间分组统计时间段内出现次数

问题描述 SQLServer 中如何按一定间隔时间分组统计时间段内出现次数 我的原始数据是这样的 |ID |time |Status |215CSZ00 |2015/11/30 23:53:41 |2 |21CUG0HB |2015/11/30 23:54:17 |1 |21CUG0HB |2015/11/30 23:54:22 |1 |21UA75CS |2015/11/30 23:54:54 |1 |215CSZ00 |2015/11/30 23:56:17 |2 |21ZCYPUY |20

dataTable如何按分组统计的多少进行排序(不好描述,内有例子)

问题描述 dataTable内的数据是这样的,我想按下面这样排序:排序的依据是:dw字段中y的统计数为5,z的统计为3,x的统计为2有什么办法能做到吗?程序是.NET2.0的,所以不能用linqjavascript:void(0); 解决方案 解决方案二:1.遍历,统计出datatable里面dw列每个元素的数量,得到一个中间表dt1ItemCountx2y5z3 2.根据dt1的Count回过头来查询datatable,构造你上面的结果集解决方案三:谢楼上,第一步容易,第二步怎么搞呢?解决方案

合并datatable字段重复的值

问题描述 一个datatable楼层时间姓名一层上午小李.小张一层下午小王二层上午小田三层上午小何.小林三层下午小曾.小丁.小胡四层上午小廖四层下午小邓.小马五层下午小苏合并后变成:楼层上午下午一层小李.小张小王二层小田三层小何.小林小曾.小丁.小胡四层小廖小邓.小马五层小苏 解决方案 解决方案二:在数据库那边行转列解决方案三:引用1楼lihui398的回复: 在数据库那边行转列 按楼主给的数据源建表,查询SQL如下:SELECT*FROM(SELECT*FROMdbo.ShiftPIVOT(M

图片-c#分组 统计 求和 最好是caozhy老师帮我回答

问题描述 c#分组 统计 求和 最好是caozhy老师帮我回答 一张datatable 请问如何分组求和 最好是caozhy老师帮我回答,呵呵 生成这样的表 请老师们指点一下 解决方案 貌似这个问题lz已经解决了.这里推荐lz看下这个系列教程https://msdn.microsoft.com/zh-cn/library/bb397676.aspx

c# datatable

问题描述 数据来自不同的数据库,不同的服务器,怎么把下面原表的数据在C#里做成样表的样子在sql里我可以根据master_no编号判断做出来,但有10多个数据库的数据时速度太慢,现在想放在c#的datatable里操作,要怎么弄?我的sql代码:select营业日期,sum(casemaster_nowhen'001'then应收金额else0end)wx应收金额,sum(casemaster_nowhen'001'then实收金额else0end)wx实收金额,sum(casemaster_n

求思路! 关于分组函数的sql 在线等

问题描述 一些数据示例:totalactpowerrectime52011-07-2000:09:0052011-07-2000:10:004.22011-07-2100:18:002.32011-07-2200:20:001.42011-07-2300:25:00selectsum(totalactpower)totalactpower,to_char(rectime,'hh24:mi:ss')asrectimefromtable1groupbyto_char(rectime,'hh24:mi

SQL 时间函数

问题描述 小弟想把一张表根据时间分组统计出来,但是时间类型他精确到了秒,我想通过分组得到一天有多少记录上传,应该怎么处理时间.如果不处理时间直接groupby的话,就相当于没分组,因为他精确到了秒,每条记录上传的时间都是不一样的~~~谢谢各位大侠~~ 解决方案 解决方案二:看看你是什么类型的数据库,如果是Oracle的话,可以先把时间转换一下,to_char(date,'yyyy-mm-dd'),这样就可以统一了,你的统计就可以实现了.如果是SQLSERVER,那就用convert转一下,里面参

Vista资源管理器特点分析(3)

自动添加过滤器 上面的过滤方法虽然功能比较强大,但是对新手来说可能有些困难,好在Vista的资源管理器还提供了另外一种更简便的自动过滤方式. 同样是在Show results for菜单中过滤掉所有非图形格式的文件之后,我们不用手工添加过滤器,只需要在该工具栏下显示的"Name"."Size"."Date Taken"等名称上点击,就可以设置相应的过滤器.这里有个问题,如果你需要过滤的属性没有显示在这里该怎么办?其实也很简单,只要在这些名称右侧的

office2016公众预览版上手体验图文演示

  很多朋友要问了office2016公众预览版上要不要安装呢,今天小编带来了office2016公众预览版上手体验图文演示,大家自己决定吧,当然,时间关系,这次是个"初体验". 1.安装: 小乐哥使用的是离线安装包版本,由于没有正式版的安装程序,因此安装过程非常快速简洁.文件默认安装在了C盘,Win10中的详细地址为C:Program Files (x86)Microsoft OfficerootOffice16(32位版).安装组件包括Word.Excel.PowerPoint.O