转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
ACCESS JET SQL 分段或者交叉统计的查询语句怎么写?         

ACCESS JET SQL 分段或者交叉统计的查询语句怎么写?

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3223 更新时间:2007/11/14 13:13:00
bsp;0             1               0               0
王五   初一3班    数学     80            0             0               1               0
王五   初一3班    英语     50            1             0               0               0
周天   初一3班    数学    100            0             0               0               1
李小   初一2班    语文     99            0             0               0               1
李小   初一2班    物理    100            0             0               0               1

但是如果需要得到合计人数怎么办?直接用 SELECT ... GROUP BY  语句就可以做到

select 班级,科目,SUM(分数) as 总分,sum(不及格人次),sum(60到80分人次),sum(80到90分人次),sum(90到100分人次) from ([刚才的执行结果]) group by 班级,科目

即可,好了,我们将刚才的 SQL 语句替换进去可以得到

select 班级,科目,SUM(分数) as 总分,sum(不及格人次),sum(60到80分人次),sum(80到90分人次),sum(90到100分人次) from (select 姓名,班级,科目,分数,1 as 不及格人次,0 as 60到80分人次,0 as 80到90分人次,0 as 90到100分人次 from 表 where 分数< 60 union all
select 姓名,班级,科目,分数,0 as 不及格人次,1 as 60到80分人次,0 as 80到90分人次,0 as 90到100分人次 from 表 where 分数>=60 and 分数< 80 union all
select 姓名,班级,科目,分数,0 as 不及格人次,0 as 60到80分人次,1 as 80到90分人次,0 as 90到100分人次 from 表 where 分数>=80 and 分数< 90 union all
select 姓名,班级,科目,分数,0 as 不及格人次,0 as 60到80分人次,0 as 80到90分人次,1 as 90到100分人次 from 表 where 分数>=90 and 分数<=100 ) group by 班级,科目

 

 

 

 

问题:

  查询一个字段中值分别0-3,3-6,6-15,15-30,>30的记录的个数怎么做?

 

 

回答:

  非常简单,你要做的只是写不同的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 ....)


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

上一页  [1] [2] 


[Access]sql随机抽取记录  [Access]ASP&SQL让select查询结果随机排序的实现方法
[其他]手工升级ACCESS到SQLSERVER方法详解  [Web开发]把ACCESS的数据导入到Mysql中的方法详解
[系统软件]SQL语句性能优化--LECCO SQL Expert  [C语言系列]SQL Server到DB2连接服务器的实现
[C语言系列]SQL Server到SYBASE连接服务器的实现  [C语言系列]SQL Server到SQLBASE连接服务器的实现
[C语言系列]SQL Server连接VFP数据库的实现  [C语言系列]ASP+SQL Server之图象数据处理
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台