求关于数据据库备注字段内频率统计的解决思路

ego 2004-04-23 07:43:31
具体有这样一个应用环境:有一个access数据库中的某个表存在一个备注字段,专门统计每天迟到人员的ID的。其格式是每个ID用逗号隔开。比如:25,89,21,35
表示这四个ID的人在当天迟到。

现在存在一个难题,想在统计页面中罗列出最近七天内迟到频率最高前十名ID。我反复思考,只有想出一个笨办法,就是穷尽所有注册人员的ID,建立一个庞大的数组,依次检索出最近天七天内的迟到ID出现的频率,出现一次累加一。然后再对所得数组所得的统计值进行排序。但是这样做太麻烦了。我想请教,有没有别的更好的思路?如果能够用一个SQL语句能解决更好。
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sfply 2004-04-24
  • 打赏
  • 举报
回复
你是每天一条记录吧!
基本上你要省麻烦就这么做
假如数据库字段为 UserID /备注型

从另外库里取员工ID,比如是USER库
dim sql,sql2,rs,rs2,i,user(100) '如果不知道有多少人就再加一个SQL查询出人数吧
set rs2=...
sql = "select id from user"
set rs = conn.execute(sql)
if not rs.eof and not rs.bof then
do while not rs.eof and not rs.bof
sql2 = "select userid from yourdb where instr(userid,""'"&rs(id)&"'"")<>0)"
rs2.open sql2,conn,1,1
user(i) = rs2.recordcount
rs.movenext
loop
end if

全部每个人的记录都下来了
ego 2004-04-24
  • 打赏
  • 举报
回复
顶一下
ego 2004-04-23
  • 打赏
  • 举报
回复
的确不合理,不过数据库是老的数据库,没有办法。只能在现有基础上尽力而为了。
liuyangxuan 2004-04-23
  • 打赏
  • 举报
回复
个人意见您的库设计的不太理想;本身你把迟到的当天的人数ID记录在一个备注形字段中,这样就涉及到字符分离,组件匹配,核对相当麻烦,程序运行速度也会变量。

ID laternum

25 1
89 2
21 4
35 5 ==============这样只要该用户ID迟到一回就记一次。根本后面的日期查询一下就可以

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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