设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 6524|回复: 10
打印 上一主题 下一主题

[查询] 交叉查询列排序例子

[复制链接]
跳转到指定楼层
1#
发表于 2011-10-24 22:51:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 咱家是猫 于 2011-10-24 22:59 编辑

几个朋友在ACCESS HOME群里问关于服装尺码与颜色多属性交叉查询出来的结果,尺码做为列标题后顺序无法从XS到XXXL自动排序.
原数据表数据如下图:


想得到的查询结果如下图:


于是我做了个例子给他们,我想这种主题在论坛上前辈肯定早已有发过,但既然例子也做出来了,就索性再具体讲下如何实现吧.
首先,我们可以利用查询向导生成一个交叉查询(当然,也可以自己在查询设计网格中编辑一个),下面依据照顾新手的原则,我帖出用查询向导制作的步骤图.

1 查询向导按钮在Access 2010里的位置,点击它.


2 在查询向导的第一步里选择交叉查询,然后确定


2.5 呵呵...发完帖子发现跳了一幅截图,那它就是2.5步骤吧. 这一步其实是选择数据来源,这例子中就只有一个表了.


3 选择以"颜色"做行标题,然后下一步.


4 选择以"尺码"为列标题,然后下一步:


5 选择以"数量"的合计(Sum)为值,然后下一步:


6 最后完成,打开查看查询结果.


7 这就是利用向导的引导下制作的一个交叉查询的结果:


8 现在就发现,上面的列标题有点乱,不是自己想要的从最小到最大尺码的排列顺序,怎么办?
打开刚刚生成的交叉查询的设计视图(如何打开设计视图?你可以在查询名上用右键单击,会有"设计视图"命令的.),然后在切换到SQL视图.如何切换,看下图找到SQL视图切换按钮.


9 至此,我们会看到几行SQL语句,这就是刚刚那个交叉查询的语句,语句如下:
TRANSFORM Sum(物品库存表.[数量]) AS 数量之合计
SELECT 物品库存表.[颜色], Sum(物品库存表.[数量]) AS [总计 数量]
FROM 物品库存表
GROUP BY 物品库存表.[颜色]
PIVOT 物品库存表.尺寸;

在语句的最后一行,是"PIVOT"行,现在,我们在它的"PIVOT"中强行设定对列的顺序,把最后一行改成:
PIVOT 物品库存表.尺寸 IN ("XS","S","M","L","XL","XXL","XXXL")

OK,保存查询设计,关闭查询设计,再打开那个查询.就成了帖子开头的满意的结果了.

赋上例子,两个Access版本的,2003与2007/2010的.





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2011-10-25 00:04:36 | 只看该作者
坐个沙发!

点击这里给我发消息

3#
发表于 2011-10-25 00:59:19 | 只看该作者
很详细!
4#
发表于 2011-10-25 07:57:23 | 只看该作者
学习了
5#
发表于 2011-10-25 10:33:31 | 只看该作者
简单明了,尤其是有图例~谢谢
6#
发表于 2011-10-25 19:24:13 | 只看该作者
猫哥写得很好。曾测试过用Format([日期],"M月")来做列标题时,In函数对此似乎无效。最后,俺只好把10月和11月拖到倒数第三和第二的位置,才算解决了问题。不知道用DatePart函数加上连接符会不会好些。
7#
发表于 2011-10-25 21:22:54 | 只看该作者
学习学习
8#
发表于 2011-10-26 12:27:01 | 只看该作者
多谢照顾新手
9#
发表于 2011-10-26 15:37:02 | 只看该作者
学习猫哥的,敬佩猫哥的!
10#
发表于 2012-2-2 22:53:15 | 只看该作者
雪中送炭啊,希望能看到多一点这样的例子给初学者。顶个!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-25 05:43 , Processed in 0.110867 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表