CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

数据库统计问题

楼主jfu(谁动了我的奶酪)2005-01-30 23:02:17 在 Web 开发 / ASP 提问

表中字段名有"name"   和"num",name中有不同的人名(有重复),如何统计出其中一个人的所有num之和?  
  表的结构大致:  
  name       num  
  a             2  
  b             4  
  c             3  
  a             3  
  问题点数:20、回复次数:23Top

1 楼dh20156(风之石)回复于 2005-01-30 23:06:41 得分 0

select   [name],sum(num)   as   num   from   [table]   group   by   [name]Top

2 楼jfu(谁动了我的奶酪)回复于 2005-01-30 23:13:55 得分 0

num之和怎么表示出来?Top

3 楼dh20156(风之石)回复于 2005-01-30 23:32:16 得分 0

rs("name")  
  rs("num")Top

4 楼jfu(谁动了我的奶酪)回复于 2005-01-30 23:50:53 得分 0

这里,我是想显示某一个人的num之和,怎么写?Top

5 楼dh20156(风之石)回复于 2005-01-30 23:58:25 得分 0

上面那条SQL语句已经将表中所有人的NUM之和求出来了,你要求某一个人的话这样:  
  select   sum(num)   as   num   from   [table]   where   [name]='要查的人'Top

6 楼jfu(谁动了我的奶酪)回复于 2005-01-31 00:20:19 得分 0

<%  
  jiabanren=request("x0jiabanren")     //输入的查询对象  
  time1=request("x0starttime")           //   查询日期  
  time2=request("x0endtime")             //查询日期  
   
  dim   conn        
  dim   connstr  
  on   error   resume   next  
   
  Connstr="DBQ="+server.mappath("js.mdb")+";DRIVER=Microsoft   Access   Driver   (*.mdb);DriverId=25;FIL=MS   Access;   ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;   SafeTransactions=0;Threads=3;UserCommitSync=Yes;"  
  Set   Conn=Server.CreateObject("ADODB.Connection")    
   
  Conn.Open   connstr    
   
  Set   rs   =   Server.CreateObject("ADODB.Recordset")  
  sql="select   sum(jbhour)   as   jbhour   from   jiaban   where   jiabaner='"&   jiabanren   &"'   and   riqi   between   '"&time1&"'   and   '"&time2&"'   "  
   
  %>  
  <%   response.write""&   jiabanren   &"<br>"  
  response.write""&time1&"<br>"  
  response.write""&time2&"<br>"  
  %><br>  
  <%=rs("jbhour")%>   //没任何显示,怎么回事?  
  数据库表中jbhour是加班时间字段名,jiabaner是加班人姓名字段   riqi是加班日期字段名  
  response.write显示的是对的,就是<%=rs("jbhour")%>没有任何显示,这是什么问题呢?Top

7 楼dh20156(风之石)回复于 2005-01-31 00:38:13 得分 0

那就是没有合适的记录啊。还有,time1要减1才对time1   =   cdate(time1)   -   1Top

8 楼dh20156(风之石)回复于 2005-01-31 00:42:23 得分 0

SORRY,是time2要加1,糊涂了。   ^_^Top

9 楼jfu(谁动了我的奶酪)回复于 2005-01-31 00:43:01 得分 0

记录是有的!我记录中的加班时间是2005-1-30  
  我查询的是time1:2005-1-28到time2:2005-2-3  
  是不是我哪里写的不对?  
  between   '"&time1&"'   and   '"&time2&"'   "和sum(jbhour)   as   jbhour   有没有问题?  
  Top

10 楼dh20156(风之石)回复于 2005-01-31 01:16:01 得分 0

你的是ACCESS?那时间就不能用单引号了  
  between   #"&time1&"#   and   #"&time2&"#Top

11 楼jfu(谁动了我的奶酪)回复于 2005-01-31 07:41:19 得分 0

换了,还是不行   :(Top

12 楼dh20156(风之石)回复于 2005-01-31 09:28:06 得分 0

不会吧?语句错不错?Top

13 楼abcwyy(花无泪)回复于 2005-01-31 10:30:40 得分 0

看看数据类型有没有错啊?Top

14 楼jfu(谁动了我的奶酪)回复于 2005-01-31 11:38:34 得分 0

语句都在上面贴了呀!  
  riqi的数据类型我选的是文本,改选为日期类型也不行,我数据库表中riqi数据是:2005-1-30  
  <%=rs("jbhour")%>就是没输出,哪里有问题?Top

15 楼jfu(谁动了我的奶酪)回复于 2005-01-31 11:47:14 得分 0

我直接把查询的时间换成具体时间,<%=rs("jbhour")%>也没输出  
  sql="select   sum(jbhour)   as   jbhour   from   jiaban   where   jiabaner='"&   jiabanren   &"'   and   riqi   between   between   #2005-1-20#   and   #2005-2-3#   "  
   
  哪里不对??数据库是accessTop

16 楼dh20156(风之石)回复于 2005-01-31 12:26:23 得分 0

你两个查询条件一个一个写来测试一下,先不加时间限制,单查名字先   ^_^Top

17 楼jfu(谁动了我的奶酪)回复于 2005-01-31 12:34:09 得分 0

上面我贴的就是只查姓名的呀!  
  sql="select   sum(jbhour)   as   jbhour   from   jiaban   where   jiabaner='徐凡'   and   riqi   between   #2005-01-20#   and   #2005-02-03#   "  
  这样把条件都定了,<%=rs("jbhour")%>还是没输出  
  我的数据库表结构  
  id           jiabaner           riqi           jbhour  
  1             徐凡               2005-1-30         2  
  .......  
  riqi是日期时间型,jbhour是数字型Top

18 楼dh20156(风之石)回复于 2005-01-31 15:46:25 得分 19

帮你测试了一下,问题在与ACCESS不支持AS以后的名称与字段名称相同,也就是你sum(jbhour)   as   jbhour这里会出错。  
  TRY:  
  <!--#include   file="conn.asp"-->  
  <%   sql="select   sum(jbhour)   as   jbsj   from   jiaban   where   jiabaner='徐凡'   and   riqi   between   #2005-1-1#   and   #2005-2-10#"  
        Set   rs=Server.CreateObject("Adodb.Recordset")  
        rs.open   sql,conn,1,1  
        If   Not   rs.eof   then  
              response.write   rs("jbsj")  
        end   if  
        rs.close  
        Set   rs=Nothing  
        conn.close  
        Set   conn=Nothing   %>Top

19 楼jfu(谁动了我的奶酪)回复于 2005-02-01 12:39:45 得分 0

非常感谢风之石!!  
  还有一个小问题:response.write   rs("jbsj")能显示出加班的时间数  
  但是<%=rs("jbsj")%>怎么就显示不出来呢?Top

20 楼chucb(chucb)回复于 2005-02-01 12:54:21 得分 1

<%=rs("jbsj")%>要独占一行Top

21 楼jfu(谁动了我的奶酪)回复于 2005-02-01 18:06:12 得分 0

<%=rs("jbsj")%>要独占一行也没用呀,还是没显示!:(  
  Top

22 楼dh20156(风之石)回复于 2005-02-01 19:37:24 得分 0

TRY:  
  <!--#include   file="conn.asp"-->  
  <%   sql="select   sum(jbhour)   as   jbsj   from   jiaban   where   jiabaner='徐凡'   and   riqi   between   #2005-1-1#   and   #2005-2-10#"  
        Set   rs=Server.CreateObject("Adodb.Recordset")  
        rs.open   sql,conn,1,1  
        If   Not   rs.eof   then   %>  
              <%=rs("jbsj")%>  
  <%   end   if  
        rs.close  
        Set   rs=Nothing  
        conn.close  
        Set   conn=Nothing   %>Top

23 楼jfu(谁动了我的奶酪)回复于 2005-02-01 19:43:47 得分 0

感谢,感谢!这次分设定得太少,请别介意!以后一定多加分!Top

相关问题

  • 数据库统计
  • 数据库统计问题
  • 关于数据库记录的统计
  • 关于数据库的统计!
  • 关于数据库统计问题
  • 问个数据库统计问题
  • 关于统计数据库值的计算??
  • 如何统计数据库记录值???????急
  • 如何不用数据库来统计下载次数
  • 关于数据库数值统计的问题。

关键词

  • 数据库
  • access
  • sql
  • jbhour
  • jiabaner
  • riqi
  • 字段名
  • 加班
  • 显示
  • 表

得分解答快速导航

  • 帖主:jfu
  • dh20156
  • chucb

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo