使用聚合函数查询数据表的问题

没你自在 2004-10-27 04:18:11
access数据库
数据表 bbs
字段 id username userpass dateandtime
自动标识 用户名 密码 发帖时间(字符串型)

现在我想检索数据表里某一时间段用户发帖数量的排行,比如2004-09-30~2004-11-20期间用户发帖数量的排行,我的写法如下:

select username,count(username) as bbsnum from bbs where (left(dateandtime,10) between '2004-09-30' and '2004-11-20') group by username order by count(username) desc

执行后排列出来的结果感觉不对啊,谁帮忙看看我的查询语句错在哪了?

在线等...解决了就给分
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
danielrh 2004-10-27
  • 打赏
  • 举报
回复
纯Access请试:

select [username],count([username]) as bbsnum from bbs where format$(dateandtime,'yyyy-mm-dd') between '2004-09-30' and '2004-11-20' group by [username] order by count([username]) desc
没你自在 2004-10-27
  • 打赏
  • 举报
回复
我顶一下!
没你自在 2004-10-27
  • 打赏
  • 举报
回复
楼上的,我用你的方法测试了一下,为什么显示如下错误:

Microsoft JET Database Engine 错误 '80040e14'

表达式中 'formatdatetime' 函数未定义。
changechange 2004-10-27
  • 打赏
  • 举报
回复
关于此主题请参考:
新手来看:Access的特点、概念。什么是纯 ACCESS 环境?《其他》
http://access911.net/index.asp?u1=a&u2=79FAB51E12DC
关于此主题请参考:
在技术论坛提问的技巧《其他》
http://access911.net/index.asp?u1=a&u2=72FAB61E17DCE7F3
changechange 2004-10-27
  • 打赏
  • 举报
回复
select [username],count([username]) as bbsnum from bbs where formatdatetime(dateandtime) >= '2004-09-30' and formatdatetime(dateandtime)<='2004-11-20' group by [username] order by count([username]) desc
没你自在 2004-10-27
  • 打赏
  • 举报
回复
上面写错了,那个dateandtime是 "日期/时间"型

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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