ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 42803|回复: 58

[分享] 【SQL】浅谈如何学习TRANSFORM/ PIVOT语句?

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2010-3-17 17:28 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
先来看看这个语句做什么用?语法怎样?

TRANSFORM 语句
创建交叉表查询Creates a crosstab query .

语法
TRANSFORM aggfunction
selectstatement
PIVOT pivotfield [IN (value1[, value2[, ...]])]

这个语句当初我一头雾水,嘿嘿! 现在终于掌握了。

例: transform sum(t1.数量)

select t1.型号 FROM (select *,'表一数量' as TableNo from [sheet1$a3:b10] union all select *,'表二数量' as TableNo from [sheet1$d3:e10])  as t1 group by t1.型号
pivot t1.TableNo

例句原帖见  
如何将这样的两个表格合并成一个表格
http://club.excelhome.net/viewth ... d=369907#pid3635100

或者见5楼汇集
http://club.excelhome.net/viewth ... d=369907#pid3646366


怎么学习这个语句呢? 谈谈我的感想:

这个语句与数据透视表是相通的。

其中的selectstatement , 相当于数据透视表的行字段. ,

其中的aggfunction , 聚合函数的参数相当于拖到数据透视表数据区域的值字段。使用的聚合函数即值字段的汇总方式

其中的 pivotfield 相当于数据透视表的列字段,后面的IN (value1[, value2[, ...]])],相当列字段中的项的排序和筛选

只要摆弄过数据透视表,将transform/pivot语句与数据透视表对照,掌握这个MS JET新增SQL语句不在话下!

以上为个人浅见, 欢迎大家补充!

以下摘自 《ACCESS 2000 DEVELOPER'S HANDBOOK》

1. TRANSFORM语句不支持HAVING子句
2. 列字段的项的个数理论上限为254个。 但是>=20个左右时,计算很可能已不准确。


[ 本帖最后由 livewire 于 2010-3-30 17:03 编辑 ]

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-3-17 17:37 | 显示全部楼层
还不是很懂,学习一下

TA的精华主题

TA的得分主题

发表于 2010-3-17 18:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢经验总结,只看Excel帮助根本就不懂什么意思,你这么一解释,好理解多了

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-17 18:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
将例句的相关信息,汇集在一起,以方便大家阅读。

需求:

ScreenShot1.jpg

SQL解答

AAA.gif

[ 本帖最后由 livewire 于 2010-3-21 01:11 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-3-18 08:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
先收藏。再慢慢消化。

TA的精华主题

TA的得分主题

发表于 2010-3-18 08:28 | 显示全部楼层
多谢楼主分享!

最开始接触这个语句是ET上面的那道竞赛题——另类行列转置。pc520用transform作答,语句简洁、通用。后在网上找了点资料,看了下,就有点明白了。后来做在论坛上用这个语句做了些练习。基本掌握了。

当时在网上找的资料就是下面这个链接,非常好,仔细观察图片和语句,看完后,基本就能运用了。
http://book.51cto.com/art/200806/78453.htm

还有本站上的资料:http://club.excelhome.net/thread-433987-1-1.html

TA的精华主题

TA的得分主题

发表于 2010-3-18 09:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢楼上几位的整理分享,搬回家啃啃

TA的精华主题

TA的得分主题

发表于 2010-3-18 17:07 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-3-20 23:53 | 显示全部楼层

个人意见:TRANSFORM 使用的时候,要注意文本与数字之间的转换。
5楼中的Access的应该数值型吧,你使用TRANSFORM 后,变成文本了。
对后期处理数据会影响很大的

TA的精华主题

TA的得分主题

发表于 2010-3-21 18:57 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 17:33 , Processed in 0.042681 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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