ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] SQL转置练习,转置九式。【开贴】

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-1-5 13:28 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 wuxiang_123 于 2012-7-24 13:54 编辑

我的答案。{:soso_e121:}
转置语句参考.rar (903 Bytes, 下载次数: 6399)

附件共有9道转置题。题目要求如下:
1:使用OLE DB SQL 作答完成
2:不允许使用辅助列,修改数据源
3:语句需能满足数据动态更新(已知记录不重复,且转置后的列数不会超出03版本的最大列数,故无须考虑转置后超出03版本最大列数。)
4:Excel版本:2003、2007、2010均可。

注:2012-3-14公布本人答案。

本帖已设置回复仅楼主可见,各位可直接回复,只有楼主才可见。

【友情提示】:暂时没有思路的家人,请浏览本人在透视表板块所发的帖子。

注意:动态更新的意思是:姓名和不是固定的,而是不断增加的。



转置.rar (6.87 KB, 下载次数: 6475)




  1. 近日收到不少坛友短消息留言,集中问题总结如下:
  2. 1:域聚合函数的用法,特别是在条件中如何引用字段变量
  3. 2:附件语句只提供了域聚合函数解法,其他如多表查询,JOIN联接的完整语句尚未贴出
  4. 3:看不懂语句
  5. 4:做这个题应从何处着手,或者说解题思路是什么
  6. 有鉴于此,小弟欲打算利用本周六、日时间录制视频作一一解说,如果你对于本题中,有除上述问题外的其他疑问,请在本周六前,在本帖跟帖回复。
  7. 因为小弟对英语一窍不通,所以视频中对语法的描述均直接采用中文意译,而且,小弟的普通话相当“普通”,发音不准之处请多多见谅,感谢大家对小弟的支持。
  8.                                                                                                                                  wuxiang_123
  9.                                                                                                                                   2012-03-27
复制代码

  1. 关于视频:
  2. 视频是一个苦力活,录制了很多遍效果都不太理想。特别分享自己答题的思路。明明知道是怎么一回事,却怎么也说不好。汗一个。
  3. 只要录制好后,会修改帖子标题说明,并附上视频下载地址,请大家谅解。
  4.                                                                                                                                      wuxiang_123
  5.                                                                                                                                       2012-04-18
复制代码


如有ACCESS2007的,可打开里面的帮助文件-自动化和可编程性,结合帮助里的语法来理解下面小弟自己意译的中文语法:
ACCESS2007帮助.png

域聚合函数语法:
  1. 域聚合函数("字段","原始表",{"条件"})
复制代码

SELECT查询语法:

  1. SELECT {谓词} 字段 { AS 字段别名} FROM 表
  2. {WHRE 分组前约束条件}
  3. {GROUP BY 指定分组依据}
  4. {HAVING 分组后约束条件}
  5. {ORDER BY 指定排序方式}
复制代码

联合查询语法:
  1. SELECT 字段 {AS 字段别名} FROM 表1
  2. UNION ALL
  3. SELECT 字段 {AS 字段别名} FROM 表2
  4. ……
  5. UNION ALL
  6. SELECT 字段 {AS 字段别名} FROM 表X
复制代码

多表查询语法:
  1. SELECT {表名称.}字段 { AS 字段别名} FROM 表1,表2, ……表x {WHERE 约束条件}
复制代码

内部联接语法:


  1. 单个内部联接:
  2. SELECT {表名称.}字段 { AS 字段别名} FROM 表1 INNER JOIN 表2 ON 联接条件

  3. 多个内部联接:
  4. SELECT {表名称.}字段 { AS 字段别名} FROM (……(表1 INNER JOIN 表2 ON 联接条件) INNER JOIN 表3 ON 联接条件)……INNER JOIN 表x ON 联接条件
复制代码
左外部联接(LEFT JOIN ON)和右外部联接(RIGHT JOIN ON)参考内部联接语法。

交叉表查询:

  1. TRANSFORM 值
  2. SELECT 行1,行2, …… ,行x FROM 表
  3. {WHERE 分组前约束条件}
  4. GROUP BY 指定行分组
  5. {ORDER BY 指定行排序}
  6. PIVOT 列 {IN (列标题1,列标题2, …… ,列标题x)}
复制代码


上述语法中,使用{ }符号括住之部分为可选部分,可省略。




评分

22

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-1-5 13:40 | 显示全部楼层
哇~公布答案也太晚了吧,要等三个月

点评

题目多,而且考虑年底大家可能都很忙碌,加上春节假期,所以,可能实际可用时间还不到一个月。  发表于 2012-1-5 13:45

TA的精华主题

TA的得分主题

发表于 2012-1-5 13:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-1-5 13:50 | 显示全部楼层
Mark一下,以后带V的时候,就靠你的源数据赚花花了,^_^

TA的精华主题

TA的得分主题

发表于 2012-1-5 14:19 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-1-5 14:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习学习,先试试做

TA的精华主题

TA的得分主题

发表于 2012-1-5 16:40 | 显示全部楼层
也过来看看,感觉很难的,留位置等有时间再研究

TA的精华主题

TA的得分主题

发表于 2012-1-8 13:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
转置一:(把数据区域属性包含字段名的勾去了)功能到了,排序如果一定一致还要修改:
  1. transform last(f1) select iif(f3=1,null,f3) from (select 号码,F1,1 as f3 from(select instr("张三 李四 王五 张小生 钱七 赵大 李海 赵晓明 黄岗 赵小明 赵广源 何田 肖月 吴真好 廖建星 张小小 何小甜 张山风 郑正强 ANDAY LEN 楚楚 萧笑笑 万乾 风云无忌 君千紫 何欣 王白白 ",F2) as 号码,号码+0.1 as 顺序, F1,F2 from [数据$])  union all   select 顺序 as 号码,F2 as F1,1 from(select instr("张三 李四 王五 张小生 钱七 赵大 李海 赵晓明 黄岗 赵小明 赵广源 何田 肖月 吴真好 廖建星 张小小 何小甜 张山风 郑正强 ANDAY LEN 楚楚 萧笑笑 万乾 风云无忌 君千紫 何欣 王白白 ",F2) as 号码,号码+0.1 as 顺序, F1,F2 from [数据$]) order by 号码) group by F3 pivot 号码
复制代码

点评

不满足动态更新条件。姓名和职称是不断增加的。  发表于 2012-1-8 14:45

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-1-13 15:43 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-1-22 14:11 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 06:28 , Processed in 0.039201 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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