c# 按时间聚合的实现问题

zw_l_1989 2012-01-13 10:13:17
有两种仪表:A和B
A数据库字段:id isOpen sttime gid
B数据库字段:id isOpen sttime gid
没什么原因 在数据库里就是分了两个表(实际上有更多个)
isOpen 是记录开关的bit型字段 sttime 是记录时间的datetime字段,gid是地理区域id

要解决的问题是在一个时间段内(小时,天,或月),该仪表的负载率(假设100个仪表,开了35个,则是35%)
本人一开始思路 在使用MSSQL的聚合函数datepart 可以完美按时间段统计出负载率
但由于这是不同的两种仪表,而实际用途中 要根据地理区域进行统计(同一地理区域内可能同时有这两种仪表)

故表A的统计结果与表2的统计结果不能简单聚合:假设A有128个,开了32个,B有64个开了8个
数据库聚合出的是A:25% B:12.5%
这两个数据无法直接相加除2,你懂的.

现在我已经实现了一个简单的选择迭代器,可以吧A,B的数据都取出来
但在分组上没有思路(C#实现类似MSSQL的datepart和group by功能)
故来求助下大家

有个要求,不能使用存储过程(存储过程也要跨表,花时间实现个迭代器 就是为了不使用存储过程)
在加入新仪表的时候 改存储过程太麻烦了 实际中已经有7 8种仪表了 可能将来会更多.
迭代器个人认为思路比较清晰 也已经实现了能满足 功能的简单迭代
...全文
137 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
熙风 2012-01-13
  • 打赏
  • 举报
回复
zw_l_1989 2012-01-13
  • 打赏
  • 举报
回复
一个点击都木有? 自己顶一下

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧