设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1953|回复: 4
打印 上一主题 下一主题

[查询] 请教交叉表数据显示(谢谢)

[复制链接]
跳转到指定楼层
1#
发表于 2011-6-3 07:39:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
各位好,现在有一个问题问大家,希望大家帮忙,谢谢
产品表
品牌     产品编号     价格
A           001             10
A           002             20
A           003             30
B           004             40
B           005             50
C           006             60
C           007             70
需要得到如下结果
A产品编号   A价格       B产品编号    B价格        C产品编号     C价格
001             10             004             40             006             60
002             20             005             50             007             70
003             30


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
5#
 楼主| 发表于 2011-6-3 23:19:43 | 只看该作者
回复 roych 的帖子

虽然没有达到最终想要的效果,但依然很感谢roych版主
4#
发表于 2011-6-3 11:42:43 | 只看该作者
噢。用联合查询也可以,但是Access不是这么玩的~~~这毕竟跟Excel是有区别的。
  1. SELECT 产品编号 AS A产品编号, 价格 As A价格,"" as B产品编号, "" as B价格,"" as C产品编号, "" as C价格 FROM 表1 where 品牌="A"
  2. union all SELECT "" AS A产品编号, "" As A价格,产品编号 as B产品编号, 价格 as B价格,"" as C产品编号, "" as C价格 FROM 表1 where 品牌="B"
  3. UNION ALL SELECT "" AS A产品编号, "" As A价格,"" as B产品编号, "" as B价格,产品编号 as C产品编号, 价格 as C价格 FROM 表1 where 品牌="C";
复制代码
当产品越来越多的时候,存在两个问题:
1、SQL查询语句过于复杂(字符数有限制滴)以致无法运行。
2、列标题超过255,无法在查询中显示。
算了,还是看附件吧。

本帖子中包含更多资源

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

x
3#
 楼主| 发表于 2011-6-3 10:42:43 | 只看该作者
拆分成三个查询应该怎么来处理呢? 希望给予解答,谢谢
2#
发表于 2011-6-3 09:30:10 | 只看该作者
除非拆分成三个查询再处理,或者编写代码,否则是不可能实现两个相互交叉的列标题的。权衡之下,我觉得这样应该算是一个不错的选择:
TRANSFORM Max(表1.价格) AS 价格
SELECT 表1.产品编号
FROM 表1
GROUP BY 表1.产品编号
PIVOT 表1.品牌;

效果如下:


本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-1 19:25 , Processed in 0.109795 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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