- 积分:0
- 财富值:0.0
- 身份:普通用户
Transform - 创建交叉表查询技巧说明
这一篇要介绍的Transform,它为Microsoft Jet SQL,可能不是每个数据库都对此支持,其功能是用来创建交叉表查询,类似于Excel的数据透视表功能。
在Excel中,很多人应该都了解了数据透视表的威力,而利用Transform,我们就可以花式的生产我们需要的汇总报表,下面是Transform的语法:
TRANSFORM aggfunctionselectstatement PIVOT pivotfield [IN (value1[, value2[, ...]])]
部分 说明
aggfunction 对所选数据进行计算的 SQL 聚合函数。
selectstatement SELECT 语句。
pivotfield 希望用于创建查询结果集中列标题的字段或表达式。
value1、value2 用于创建列标题的固定值。
说明:
使用交叉表查询汇总数据时,将从作为列标题的指定字段或表达式中选择值,以便能够以一种比使用选择查询更紧凑的方式来查看数据。
TRANSFORM 是可选的,但如果包括它,则应为 SQL 字符串中的第一个语句。它在指定作为行标题的字段的 SELECT 语句之前,在指定行分组方法的 GROUP BY 子句之前。您也可以包含其他子句(例如。指定其他选择或排序条件的 WHERE)。还可以在交叉表查询中使用子查询作为谓词,特别是在 WHERE 子句中。
pivotfield 中返回的值作为查询结果集中的列标题。例如,在交叉表查询中如果依据月销售量来透视销售数据,将会创建 12 个列。可以约束 pivotfield 以便从可选 IN 子句中所列出的固定值(value1,value2)内选择标题。也可以包含固定值用于没有数据来创建其他列的情况。
上面是Transform在微软官网上的说明,当然,它在里面也列出了例子,这里我就不把例子发到这里,而是自己整理了7个应用Transform的实例,连同数据,一并放在 http://www.excelba.com/Soft/Html/160.html 中,因为代码挺多了,就不一一贴在这个文章里。
如果你不是从第一篇 SQL语言教程看起,那您还可以到 SQL语言教程 了解更多的SQL知识,也希望您通这这篇文章,了解Transform后,能在工作中真正能够快速地生成你需要的报表!
这个技巧是否很棒呢?!欢迎大家继续探讨。