Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

数据行列转置

lyjsh  发表于:2013-07-03 15:42:49  
复制

原先有一张如下图1的表,现在要求转置显示数据,变成下面的图2。有高手能提供下思路么?谢谢!

图1

图2

 

Top
沧海桑田 发表于:2013-07-03 16:33:26

用透视表很容易实现



煮江品茶 发表于:2013-07-03 16:38:20

先联合查询再交叉查询即可。


一、联合查询
select 期间,店号,"销售额" as 指标,销售额 as val from tbname
union all
select 期间,店号,"销售量" as 指标,销售量 as val from tbname
union all
select 期间,店号,"税费" as 指标,税费 as val from tbname


二、可以有以下两种处理
1、将联合查询单独编制并命名为:联合查询,以此联合查询为基础写交叉查询:

TRANSFORM Sum(a.val) AS 数量
SELECT a.店号,a.指标
FROM 联合查询 as a
GROUP BY a.店号,a.指标
PIVOT a.期间;


2、可不单独编写联合查询,而是在from子句中用子查询做源,可以写为:
TRANSFORM Sum(a.val) AS 数量
SELECT a.店号,a.指标
FROM (
select 期间,店号,"销售额" as 指标,销售额 as val from tbname
union all
select 期间,店号,"销售量" as 指标,销售量 as val from tbname
union all
select 期间,店号,"税费" as 指标,税费 as val from tbname
) as a
GROUP BY a.店号,a.指标
PIVOT a.期间;


三、在字段比较多的时候,还可以用ADO写自定义函数返回一个类似的数据集供窗体或报表使用。



lyjsh 发表于:2013-07-04 09:46:36

感谢品茶


再请问下

三、在字段比较多的时候,还可以用ADO写自定义函数返回一个类似的数据集供窗体或报表使用。

ADO相关的信息或学习资料在哪里能找到么?我的字段比较多,信息数量也很大。


谢谢!



总记录:3篇  页次:1/1 9 1 :