暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

网优高级必经之路 Access查询设计之交叉表--00009

无数据不网优 2018-06-04
649

上次我们介绍了联接属性,明白了左连接右连接,这次我们看看又一神器—交叉表查询
六 交叉表查询—查询设计(续)
上节我们讲解设计查询的联接属性中特殊的左连接与右连接,下来就得提及交叉表查询了,一个类似于Excel下转置的神奇查询。
你是否见过这样的数据:
 



想转换成这样的结果呢?


 
当然首先得仔细看看这种数据的特点:
也就是图一中前三列表示的是一个对象,第四列是个顺序编号,从0开始,最大到31,这个就是GSM时代,GSM小区的邻区列表,每一个邻区都有一个唯一不重复的处于0~31之间的编号。
而我们实际工作中经常有些应用工具需要使用图二这样的邻区表示法,也就是每一个网元对象只有一行,前5列是网元自身的信息,后面32列则为这个网元的所有邻区列表。
那么怎样在Access下,快速的利用图一中的数据得到图二中的结果呢,你是不是又在用Excel的思维在思考,Excel下怎么去实现呢!是不是开始已经头大了,几十万行如何进行转置操作呢,没有VBA代码或别人编好的VBA工具,看来肯定没戏了。
那么你想体验Access的魅力么?那就紧跟我来吧,体验交叉表查询的神奇之处!
图一所列数据复制进入Access表名命名为“ADJCHO_Nortel”,创建新查询,添加此表,将bscid,btssitemanagerid,btsid,以及adjacentCellId等字段选入查询的字段行。


 
然后点击设计菜单中的交叉表按钮,查询设计是不是变了,好像似曾相识啊,跟点击汇总按钮的效果一样噢,但是多了一行叫做交叉表的选项行:


 
双击bscid,btssitemanagerid,btsid三个字段的交叉表行,更改为行标题,而两次双击adjacentCellId字段列的交叉表行,发现有个列标题:


 
我们有了行标题,列标题,下来我们得做个值,而值对应的就是locationareacode和cellidentity的连体,即locationAreaCode&”_” cellIdentity,给他起名叫LAC_CI:


 
最终设计效果如下:


 

执行后的效果呢:


 
是不是很简单呢!你学会了么?这个行标题、列标题、值;你能理解么?如果你很难理解这个概念,那是很正常的。你只要知道在交叉表查询中,行标题可以多设,但是列标题和值却只能出现一次,且值这一列,只能选择聚合类的选项或表达式这一项,而不能是Group By。

好好理解一下,这个吃透了,你的Access的功力又将大幅提升一级了。

又给个思考题:如果没有这样的顺序编号,如何实现类似交叉表的功能呢?
如对此问题的答案有兴趣,请加作者微信号并加群大家一起交流!

有没有越来越心动,体会到Access的这些神奇之处呢,那还不抓紧跟上节奏!

可/QQ:110290428,邀请加入Access学习群进行交流!




文章转载自无数据不网优,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论