CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  Access

不同数值范围查询怎么做?

楼主linyany()2006-03-08 10:16:53 在 其他数据库开发 / Access 提问

查询一个字段中值分别0-3,3-6,6-15,15-30,>30的记录的个数怎么做? 问题点数:20、回复次数:11Top

1 楼wwwwb()回复于 2006-03-08 10:18:24 得分 20

将表及要求结果贴出来看看Top

2 楼wwwwb()回复于 2006-03-08 10:27:31 得分 0

参考:  
  Partition   函数示例  
  本示例假设您有一个“Orders”表,且里头含有一个“Freight”字段。程序建立一个“选择”来计算运费落在某些范围内的订单数量。Partition   函数是用来确定这些范围,然后调用   SQL   Count   函数来计算在每个范围内的订单数量。本示例中,Partition   函数的参数值为   start   =   0,stop   =   500,interval   =   50。第一个范围会是   0:49,每隔   50   一个范围,依次而下直到运费为   500   为止。  
   
  SELECT   DISTINCTROW   Partition([freight],0,   500,   50)   AS   Range,  
  Count(Orders.Freight)   AS   Count  
  FROM   Orders  
  GROUP   BY   Partition([freight],0,500,50);  
   
  Top

3 楼linyany()回复于 2006-03-08 10:29:35 得分 0

表大概这样:  
   
  呼叫  时长  
  1    2  
  2    5   
  3    6  
  4    10  
  5    1  
  6    8  
   
  需要结果  
       时长<3  3<时长<6 6<时长15 15<时长30 时长>30  
  (次数)  2       2      2       0     0Top

4 楼linyany()回复于 2006-03-08 10:30:20 得分 0

范围没有规律怎么办?Top

5 楼wwwwb()回复于 2006-03-08 11:05:30 得分 0

SELECT   sum(iif(时长<=3,1,0))   AS   时长3,   sum(iif(时长>3   and     时长<=6,1,0))   AS   时长3to6,   sum(iif(时长>6   and   时长<=15,1,0))   AS   时长6to15,   sum(iif(时长>15   and   时长<=30,1,0))   AS   时长15to30,   sum(iif(时长>30,1,0))   AS   时长30  
  FROM   b08  
  GROUP   BY   1;  
  Top

6 楼linyany()回复于 2006-03-08 11:06:56 得分 0

GROUP   BY   1 什么意思Top

7 楼linyany()回复于 2006-03-08 11:18:27 得分 0

说数据类型不匹配.我是要数量,将你的sum 改成 countTop

8 楼changechange(http://access911.net 是我的个人网站,欢迎光临)回复于 2006-03-08 11:21:53 得分 0

非常简单,你要做的只是写不同的WHERE   子句,然后将他们组合起来而已。用   ASNI   SQL   就可以做到。  
   
   
   
  select   呼叫   as   小于3,0   as   大于3小于6,0   as     大于6小于15,0   as   大于15小于30,0   as   大于30   from   where   时长<3  
   
  union   all  
   
  select   0   小于3,呼叫   as   大于3小于6,0   as     大于6小于15,0   as   大于15小于30,0   as   大于30   from   where   时长>3   and   时长<6  
   
  union   all   ....  
   
   
  一直持续下去  
   
  如果你要汇总只要写一个   sum语句即可  
   
   
  select   sum(小于3),sum(大于3小于6),sum(大于6小于15),sum(大于15小于30),sum(   大于30   )   from   (  
   
  select   呼叫   as   小于3,0   as   大于3小于6,0   as     大于6小于15,0   as   大于15小于30,0   as   大于30   from   where   时长<3  
   
  union   all  
   
  select   0   小于3,呼叫   as   大于3小于6,0   as     大于6小于15,0   as   大于15小于30,0   as   大于30   from   where   时长>3   and   时长<6  
   
  union   all   ....)Top

9 楼changechange(http://access911.net 是我的个人网站,欢迎光临)回复于 2006-03-08 11:22:18 得分 0

你要   COUNT   也可以Top

10 楼linyany()回复于 2006-03-09 10:09:28 得分 0

太复杂了吧,有没有简单点的,用IIF什么的?Top

11 楼changechange(http://access911.net 是我的个人网站,欢迎光临)回复于 2006-03-09 12:40:43 得分 0

太复杂了吧,有没有简单点的,用IIF什么的?  
  --------请注意!用   IIF   才是最复杂的,因为它涉及到   JET   DB   /   ACCESS   JET   SQL   /VBA   三方面!  
   
  而用   UNION   ALL   只涉及到   JET   DB   ,该语句通用性非常强Top

相关问题

  • 能用一个查询语句查询不同数值范围的变量吗?
  • 不同数值查询
  • 下拉框的数值查询
  • 常量如何取得查询数值!!
  • 新人报到求sql查询语句,在一个select中得到两个不同查询范围的查询结果,急!!!80分!!!
  • 范围查询(急急!!!)
  • 急!查询提交后参数值的判断?
  • 查询数据库,数值匹配的问题!
  • 如何查询pb中颜色与数值的对应关系?
  • 请教一sql查询数值精度问题!

关键词

  • 函数
  • 时长
  • 范围
  • freight
  • 示例
  • 小于
  • 大于
  • partition
  • 数量
  • count

得分解答快速导航

  • 帖主:linyany
  • wwwwb

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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