`
阅: 2780 | 回: 0
发表于2015/9/10 14:06:17 楼主 
头像 等级:初学者
积分:0
财富值:0.0
身份:普通用户

Transform - 创建交叉表查询技巧说明

 

 

    这一篇要介绍的Transform,它为Microsoft Jet SQL,可能不是每个数据库都对此支持,其功能是用来创建交叉表查询,类似于Excel的数据透视表功能。

Excel中,很多人应该都了解了数据透视表的威力,而利用Transform,我们就可以花式的生产我们需要的汇总报表,下面是Transform的语法:

TRANSFORM aggfunctionselectstatement PIVOT pivotfield [IN (value1[, value2[, ...]])]

部分  说明 
aggfunction  对所选数据进行计算的 SQL 聚合函数。 
selectstatement  SELECT 语句。 
pivotfield  希望用于创建查询结果集中列标题的字段或表达式。
value1value2  用于创建列标题的固定值。

说明:

使用交叉表查询汇总数据时,将从作为列标题的指定字段或表达式中选择值,以便能够以一种比使用选择查询更紧凑的方式来查看数据。

TRANSFORM 是可选的,但如果包括它,则应为 SQL 字符串中的第一个语句。它在指定作为行标题的字段的 SELECT 语句之前,在指定行分组方法的 GROUP BY 子句之前。您也可以包含其他子句(例如。指定其他选择或排序条件的 WHERE)。还可以在交叉表查询中使用子查询作为谓词,特别是在 WHERE 子句中。

pivotfield 中返回的值作为查询结果集中的列标题。例如,在交叉表查询中如果依据月销售量来透视销售数据,将会创建 12 个列。可以约束 pivotfield 以便从可选 IN 子句中所列出的固定值(value1value2)内选择标题。也可以包含固定值用于没有数据来创建其他列的情况。

上面是Transform在微软官网上的说明,当然,它在里面也列出了例子,这里我就不把例子发到这里,而是自己整理了7个应用Transform的实例,连同数据,一并放在 http://www.excelba.com/Soft/Html/160.html 中,因为代码挺多了,就不一一贴在这个文章里。

如果你不是从第一篇 SQL语言教程看起,那您还可以到 SQL语言教程 了解更多的SQL知识,也希望您通这这篇文章,了解Transform后,能在工作中真正能够快速地生成你需要的报表!

这个技巧是否很棒呢?!欢迎大家继续探讨。

我的个性签名

快速回复

目前不允许游客发表,请 登录 注册 后再发贴。