等級(jí):初學(xué)者
-
積分:0
-
財(cái)富值:0.00
-
身份:普通用戶
Transform - 創(chuàng)建交叉表查詢技巧說(shuō)明
這一篇要介紹的Transform,它為Microsoft Jet SQL,可能不是每個(gè)數(shù)據(jù)庫(kù)都對(duì)此支持,其功能是用來(lái)創(chuàng)建交叉表查詢,類似于Excel的數(shù)據(jù)透視表功能。
在Excel中,很多人應(yīng)該都了解了數(shù)據(jù)透視表的威力,而利用Transform,我們就可以花式的生產(chǎn)我們需要的匯總報(bào)表,下面是Transform的語(yǔ)法:
TRANSFORM aggfunctionselectstatement PIVOT pivotfield [IN (value1[, value2[, ...]])]
部分 說(shuō)明
aggfunction 對(duì)所選數(shù)據(jù)進(jìn)行計(jì)算的 SQL 聚合函數(shù)。
selectstatement SELECT 語(yǔ)句。
pivotfield 希望用于創(chuàng)建查詢結(jié)果集中列標(biāo)題的字段或表達(dá)式。
value1、value2 用于創(chuàng)建列標(biāo)題的固定值。
說(shuō)明:
使用交叉表查詢匯總數(shù)據(jù)時(shí),將從作為列標(biāo)題的指定字段或表達(dá)式中選擇值,以便能夠以一種比使用選擇查詢更緊湊的方式來(lái)查看數(shù)據(jù)。
TRANSFORM 是可選的,但如果包括它,則應(yīng)為 SQL 字符串中的第一個(gè)語(yǔ)句。它在指定作為行標(biāo)題的字段的 SELECT 語(yǔ)句之前,在指定行分組方法的 GROUP BY 子句之前。您也可以包含其他子句(例如。指定其他選擇或排序條件的 WHERE)。還可以在交叉表查詢中使用子查詢作為謂詞,特別是在 WHERE 子句中。
pivotfield 中返回的值作為查詢結(jié)果集中的列標(biāo)題。例如,在交叉表查詢中如果依據(jù)月銷售量來(lái)透視銷售數(shù)據(jù),將會(huì)創(chuàng)建 12 個(gè)列。可以約束 pivotfield 以便從可選 IN 子句中所列出的固定值(value1,value2)內(nèi)選擇標(biāo)題。也可以包含固定值用于沒(méi)有數(shù)據(jù)來(lái)創(chuàng)建其他列的情況。
上面是Transform在微軟官網(wǎng)上的說(shuō)明,當(dāng)然,它在里面也列出了例子,這里我就不把例子發(fā)到這里,而是自己整理了7個(gè)應(yīng)用Transform的實(shí)例,連同數(shù)據(jù),一并放在 http://www.excelba.com/Soft/Html/160.html 中,因?yàn)榇a挺多了,就不一一貼在這個(gè)文章里。
如果你不是從第一篇 SQL語(yǔ)言教程看起,那您還可以到 SQL語(yǔ)言教程 了解更多的SQL知識(shí),也希望您通這這篇文章,了解Transform后,能在工作中真正能夠快速地生成你需要的報(bào)表!
這個(gè)技巧是否很棒呢?!歡迎大家繼續(xù)探討。