熱線電話:13121318867

登錄
首頁精彩閱讀Excel中使用SQL語句匯總表格
Excel中使用SQL語句匯總表格
2016-06-23
收藏

Excel中使用SQL語句匯總表格

上一節我們學習了通過Excel數據透視表對多個工作表進行快速匯總,這僅僅是一種特殊的情況。我們在實際工作中經常遇到的情況是,要匯總的每個工作表中有多列文本。但是這些工作表的列數據結構完全相同,也就是列數相同,列數據項目的先后順序也相同,但是行數可以不同,今天我們來學習下在Excel中使用SQL語句匯總表格。

使用導入數據+SQL數據查詢的方法是目前這類問題最好的解決方法之一。這種方法的實質就是將各個Excel工作表當成數據庫的表進行連接查詢,得到一個查詢數據集,這個數據集中保存有各個工作表的所有數據,然后將這個查詢記錄集的數據保存到工作表,或者以此為基礎制作普通的數據透視表,從而得到需要的報表。

需要注意的是,為了能夠利用導入數據+SQL數據查詢的方法匯總多列文本情況下的多個工作表數據。每個工作表的第一行最好是數據區域的列標題。如果每個工作表的第一行不是數據區域的列標題。就需要先對數據區域定義名稱,或者在SQL語句中進行特殊處理。

圖1所示為3個城市的銷售數據工作表“北京”、“上?!焙汀疤旖颉?,每個工作表保存有不同銷售部門的各個產品的銷售量和銷售額數據?,F在要把這3個工作表的數據合并到一張工作表上,或者直接制作數據透視表,以便于進行各種統計分析。

圖1

下面是利用SQL數據查詢的方法來匯總具有多列文本的多個工作表數據的具體方法和步驟。

1、在任何一個工作表中單擊“數據”選項卡,在“獲取外部數據一功能組中單擊“現有連接”按鈕,如圖2所示,打開“現有連接”對話框。如圖3所示。

圖2

圖3

2、單擊對話框左下角的“瀏覽更多”按鈕,打開“選取數據源”對話框,如圖4所示。

圖4

3、從保存該工作簿的文件夾中選擇該文件,如圖5所示。

圖5

4、單擊“打開”按鈕,打開“選擇表格”對話框,從表格列表中任選一個表格,并要選擇“數據首行包含列標題”復選框,如圖6所示。

圖6

5、單擊“確定”按鈕,打開“導入數據”對話框,如圖7所示。

圖7

6、單擊“屬性”按鈕,打開“連接屬性”對話框,如圖8所示。切換到“定義”選項卡,在“命令文本”文本框中輸入以下SQL命令(如圖9所示):

圖8

圖9

select '北京'as城市,*from[北京$]union all

select '上海'as城市,*from[上海$]union all

select '天津'as城市,*from[天津$]

7、單擊“確定”按鈕,返回到“導入數據”對話框。

根據需要,可以選擇“表”單選按鈕或者“數據透視表”單選按鈕,并指定數據的保存位置,最后單擊“確定”按鈕,印可得到需要的匯總表。

圖10所示是選擇“表”單選按鈕后得到的匯總數據清單。

圖10

圖11所示是選擇“數據透視表”單選按鈕后得到的數據透視表。

圖11

關于SQL語句的小知識:

本節介紹了利用SQL語句對多個具有多列文本工作表數據進行查詢匯總的基本方法,下面簡要介紹SQL語句的基本知識。

在眾多的SQL語句中,SELECT語句是使用最頻繁的。SELECT語句主要用來對數據庫進行查詢并返回符合用戶查詢標準的結果數據。

SELECT語句有5個主要的子句,而FROM是唯一必需的子句。每一個子句有大量的選擇項和參數。

SELECT語句的語法格式如下:

SELECT字段列表

FROM子句

[WHERE子句]

[GROUP BY子句]

[HAVING子句]

[ORDER BY子句]

SELECT語句的各項組成說明如下:

(1)字段列表

字段列表指定多個字段名稱。各個字段之間用半角逗號“?!狈指?。用星號“*”表示所有的字段。當包含有多個表的字段時??捎谩皵祿砻?。字段名”表示,即在字段名前標明該字段所在的數據表。

例如?!皊elect日期,產品編號,銷售量,銷售額”就是選擇數據表中的“日期”、“產品編號”、“銷售量”和“銷售額”這4個字段。還可以在字段列表中自定義宇段。例如SQL語句“select日期,產品編號,銷售量,銷售額?!氨本?as城市from[北京$]”中,除了查詢工作表“北京”中的宇段“日期”、“產品編號”、“銷售量”和“銷售額外”。還自定義了一個工作表中沒有的字段“城市”。并將“北京”作為該宇段的數據。由于“北京”是一個文本。因此需要用單引號括起來。將某個數據保存在自定義字段的方法是利用AS屬性詞。即“'北京'as城市”。

(2)FROM子句

FROM子句是一個必需子句,指定要查詢的數據表,各個數據表之間用半角逗號“?!狈指?。

但要注意。如果是查詢工作簿中的數據表,就必須用方括號將工作表名括起來,并且工作表名后要有美元符號($)。

例如?!皊elect日期,產品編號,銷售量,銷售額from[北京$]".就是查詢工作表“北京”中的字段“日期”、“產品編號”、“銷售量”和“銷售額”。

如果要查詢的是Access數據庫、SQL Server數據庫等關系型數據庫的數據表,在FROM后面直接寫上數據表名即可。

(3)WHERE子句

WHERE子句是一個可選子句,指定查詢的條件??梢允褂?a href='/map/sql/' style='color:#000;font-size:inherit;'>SQL運算符組成各種條件運算表達式。

例如“WHERE部門=“銷售部”就表示要查詢的部門是“銷售部”的數據。

如果條件值是數值,則直接寫上數值,如“WHERE年齡>50";如果條件值是字符串。則必須用單引號“'”括起來。如“WHERE部門='銷售部'”;如果條件值是日期,則必須用井號“#”或單引號“'”括起來。如“WHERE日期:=#2007-12-22#”。

(4)GROUP BY子句

GROUP BY子句是一個可選子句,指定分組項目,使具有同樣內容的記錄(如日期相同、部門相同、性別相同等)歸類在一起。

例如,“GROUP BY性別”就表示將查詢的數據按性別分組。

(5)HAVING子句

HAVING子句是—個可選子句,功能與WHERE子句類似,只是必須與GROUP BY子句一起使用。

例如,要想只顯示平均工資大于5000元的記錄并按部門進行分組,則可以使用子句“GROUPBY部門HAVING AVG(工資總額)>5000"。

(6)ORDERBY子句

ORDER BY子句是一個可選子句,指定查詢結果以何種方式排序。排序方式有兩種:升序(ASC)和降序(DESC)。如果省略ASC和DESC.則表示按升序排序。

例如?!癘RDER BY姓名ASC"就表示查詢結果按姓氏拼音升序排序;而“ORDER BY工資總額。年齡DESC”則表示查詢結果按“工資總額”從小到大升序排序,“年齡”按從大到小降序排序。

此外,在實際工作中可能要查詢工作簿中的多個工作表或者數據庫中的多個數據表。這就是多表查詢問題。

多表查詢有很多種方法。例如。利用WHERE子句設置多表之間的連接條件。利用JOIN…ON子句連接多個表。利用UNION或者UNION ALL連接多個SELECT語句等。

Excel中使用SQL語句匯總表格時,如果我們要查詢多個工作表或數據表的數據,并將這些表的數據生成一個記錄集。那么可以利用UNION ALL將每個表的SELECT語句連接起來。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢