數據查詢中,三個工作表聯合查詢的方法

2020-12-12 VBA語言專家

大家好,今日繼續講解VBA資料庫解決方案,今日的內容是第70講: 數據查詢中,三個工作表聯合查詢的方法。在各種查詢中,內連接,左外連接,右外連接等等,這些方法大家在工作中要多加利用,並且靈活利用,利用多了,知識就變成自己的了。今日我們講解的是三個工作表的聯合查詢,也就是說三個工作表的數據要一次查詢。我們還是看下面的實例講解。

實例,我們有三個工作表,工作表「數據3」,工作表「數據7」,工作表「數據8」數據如下:

我們在上面的三個工作表中以員工編號為線索,要返回三個表的聯合表格,同時欄位要全欄位,員工編號,姓名,年齡,民族,植樹數量,成活數量,這個代碼要如何寫呢?下面看我的代碼:

Sub mynzRecords_70() '第70講 三表查詢SQL

Dim cnADO, rsADO As Object

Dim strPath, strSQL As String

Worksheets("70").Select

Cells.ClearContents

Set cnADO = CreateObject("ADODB.Connection")

Set rsADO = CreateObject("ADODB.Recordset")

strPath = ThisWorkbook.FullName

cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 12.0;hdr=yes;imex=1';data source=" & strPath

strSQL = "select A.員工編號,B.姓名,B.年齡,C.民族,A.植樹數量,A.成活數量" _

& " from [數據3$] as A,[數據7$] as B,[數據8$]" _

& " as C where A.員工編號=B.員工編號 and B.員工編號=C.員工編號 group by " _

& "A.員工編號,B.姓名,B.年齡,C.民族,A.植樹數量,A.成活數量"

'打開記錄集

rsADO.Open strSQL, cnADO, 1, 3

For i = 1 To rsADO.Fields.Count

Cells(1, i) = rsADO.Fields(i - 1).Name

Next

'提出數據

Range("a2").CopyFromRecordset rsADO

'釋放內存

rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代碼截圖:

代碼解讀:

1 上述代碼就是要聯合數據3工作表、數據7工作表、數據8工作表,通過A.員工編號=B.員工編號 and B.員工編號=C.員工編號量實現三表聯合查詢

2 strSQL = "select A.員工編號,B.姓名,B.年齡,C.民族,A.植樹數量,A.成活數量" _

& " from [數據3$] as A,[數據7$] as B,[數據8$]" _

& " as C where A.員工編號=B.員工編號 and B.員工編號=C.員工編號 group by " _

& "A.員工編號,B.姓名,B.年齡,C.民族,A.植樹數量,A.成活數量"

上述SQL 語句就是實現三表聯合查詢的代碼。

3 上述查詢中需要注意的是後面的group by 語句的寫法,大家在複製代碼的時候要注意格式,不可以寫錯。

下面看代碼的運行:

今日內容回向:

1 如何實現三表聯合查詢?

2 三表聯合查詢中是通過什麼來實現的?

相關焦點

  • Excel中的查詢編輯器如何匯總數據?
    Excel匯總數據可以使用查詢編輯器提高工作效率,下面小編就來詳細的教大家操作的方法吧。1.打開Excel工作表,要將前六個工作表的內容進行匯總,點擊數據選項卡。4.然後點擊選擇多項,將下方的六個工作表都勾選上。
  • Power Query中的「追加查詢」可以實現合併多個工作表和工作簿
    通過講解合併工作表和工作簿,來實現深入理解PQ追加查詢。 01 PQ追加查詢合併工作表 案例 老闆給我們發過來一個Excel表格,裡面包含了100+個sheet表格。
  • Excel | VBA(7)--根據訂單號跨多工作表查詢數據
    一起來學office,提高辦公技能問題情境Excel跨多個工作表查詢數據,用公式不好統計,尤其是遇到不斷增加工作表的情況,比如:上圖中,要根據訂貨單號選擇相應的貨名、數量、單位、單價等信息。而這些訂貨單號對應貨名等分布在不同的9個工作表中,而且工作表還在不斷增加。在這種情況下,公式顯得有些蒼白無力,就需要用VBA來完成跨表查詢。
  • 轉置,在數據查詢中的利用方法
    大家好,今日繼續講解VBA資料庫解決方案,今日講解的是第72講,內容是:轉置函數在查詢中的利用。數據處理的結果是要形成一個比較好看易懂的報表,如何能做出我們需要的格式,這就要我們靈活的運用所學到的知識,大膽的進行嘗試。今天講的是轉置函數,這個函數在數組中經常的用到,我們看看在資料庫中,這個函數是怎麼利用的 。
  • 工作表數據查詢時,類似篩選功能LIKE和NOT LIKE的應用
    大家好,我們繼續講解VBA資料庫解決方案,今日講解第53講內容:工作表查詢時,類似於篩選功能的LIKE和NOT LIKE 的應用。大家在工作的時候,利用EXCEL操作,篩選是必不可少的工具之一。例如我們可以篩選以某個字符開頭的數據,或者篩選不以某個字符開始的數據,那麼這個功能如何在ADO連接EXCEL進行查詢時實現呢?
  • Microsoft Query創建參數查詢數據透視表
    針對同一個工作表內的數據源,我們通過SQL語句,每次只需要提取數據透視表某一部分的數據源,示例如下:數據源在《各部門銷售統計.xlsx》工作簿、銷售明細工作表內,我們在銷售明細工作表旁新建一個工作表,輸入希望提取數據源的條件,本例輸入的提取條件是「部門,成品銷售部二部」
  • 利用VBA,如何在資料庫中新建查詢表,並在工作表中顯示其內容
    大家好,今日講解VBA資料庫解決方案第19講:如何在資料庫中新建一個查詢表,並在工作表中顯示出來。關於Recorsset集合的一些操作講解,在前幾講中講了很多,這裡提醒大家一點:任何對象都不是孤立存在的,要結合實際來理解。
  • 如何將12個月的工資數據快速匯總到一個工作表中?
    「顧總,這種表格用什麼方法進行匯總呢?」「可以用SQL語句的方法將12個月的表格匯總成一份總表,然後再用數據透視表進行數據匯總和分析。」「顧總,如果列結構變了怎麼辦呢?」比如,在工資表這個例子中,如果需要用數據透視表進行數據匯總,就需要先把分別存在12個表格中的全年工資表用複製、粘貼的方法放到一個工作表中,現在有了SELECT語句,就可以實現EXCEL的自動複製粘貼了。
  • MSSQL中的聯合查詢與視圖
    前面幾篇講到SQL資料庫的一些查詢的基本語句,今天分享一下聯合查詢與視圖,這些在實際項目中用的也很多,問題也不少。一、聯合查詢: 關鍵詞Union 和 Union all我們先看下會用到的2張表:TableA ,TableB現在我們做幾個實驗:(1)將TableA中的第一條和第三條記錄聯合顯示:select * from TableA WHERE xh=1union allselect * from TableA
  • vlookup函數多工作數據查詢,這兩個操作80%的人不知道
    我們都知道vlookup函數可以進行數據查詢,但是這僅僅是限於對於一個工作表數據的查找。今天我們就來學習一下vlookup函數兩種多表查詢方法,讓我們輕鬆實現多工作表數據查找。
  • Excel工作表中必須掌握的4個多條件查詢引用技巧
    目的:查詢相關「產品」在相應「地區」的銷量。方法:在目標單元格中輸入公式:=SUMIFS(C3:C9,B3:B9,H3,E3:E9,I3)。2、如果數據源中的數據沒有重複的記錄,在用Sumifs求和的同時,間接的實現了查詢引用功能。二、多條件查詢引用:Sumproduct函數法。目的:查詢相關「產品」在相應「地區」的銷量。
  • 跨工作表數據查詢,不用打開工作簿,學會高級引用so easy
    在Excel表格中進行數據查詢,相信絕大多數同學都不陌生,在進行單工作跨工作表或者跨工作簿查詢數據時,我們都會利用到vlookup
  • mysql查詢——mysql中數據累加的方法
    下圖是一張3月份的銷售數據表(sales),其中包含欄位序號Id、日期Date、銷量Sales,現在需要編寫一個查詢語句,統計3月1日到每日的累計銷量。方法一:通過自定義變量實現select date,sales,@cum_sales:=@cum_sales+sales as cum_salesfrom sales,(select @cum_sales:=0)corder by date asc;方法二:通過將聚合函數sum作為窗口函數實現(mysql8.0及以上版本可用
  • VLOOKUP亂序欄位查詢
    ,有同學發現數據源中的多個工作表中欄位順序是一致的,於是提問當各個工作表中欄位順序不一致時,如何進行數據查詢呢?只要你能找到規律,構建思路,確定方法,這些都不是難事。今天要講的就是VLOOKUP函數亂序欄位查詢的技術。本教程內容擔心記不全的話,可以分享到朋友圈給自己備份一份。
  • Excel數據查詢好搭檔
    該函數通常使用兩個或是三個參數,三個參數的寫法是:INDEX(單元格區域,指定的行數,指定的列數)例如以下公式,用於返回A1:D4單元格區域第3行和第4列交叉處的單元格,即D3單元格。=INDEX(A1:D4,3,4)
  • Excel工作表中最常用的10個函數,中文解讀,動圖演示,易學易用!
    ,但是,下文中的10個函數是部分行業和部門的,所有的從業人員必須100%全部掌握!三、Excel工作表函數:Lookup功能:從單行或單列或數組中查找一個值。Lookup具有兩種形式:向量形式和數組形式。
  • Excel快速查詢刪除重複數據,這三個方法最簡單高效
    在用Excel處理數據的過程中,我們比較擔心的一個問題就是大量數據中出現許多的重複數據內容。今天我們就來學習三個最簡單的查找刪除重複數據的方法。案例說明:如下圖,我們需要核對剩餘庫存單號中是否還存在已經出庫的單號。
  • Excel工作表中最常用的10個函數,中文解讀,動圖演示,易學易用
    Excel工作表中的函數是非常的繁多的,如果要全部掌握,幾乎是不可能的,也沒有這個必要,不用行業,不同部門對函數需求都不同,所以,只需要掌握自己常用的部分函數即可,但是,下文中的10個函數是部分行業和部門的,所有的從業人員必須100%全部掌握!
  • Excel表格中一對多查詢的幾個公式,可以直接套用,閒公式複雜,用數據透視表
    日常工作中,從表格中按條件查詢數據一般都要想到LOOKUP和VLOOKUP函數,還有一個INDEX和MATCH函數組合也是超好用的。但這些函數普通用法,只會查找到第1個符合條件的結果,如果碰到下圖中的情況,有多個結果時,普通用法難以完成。
  • Excel工作表中的20個信息函數,獲取文件路徑,單元格格式等!
    方法:在目標單元格中輸入公式:=ERROR.TYPE(B3)。三、Excel工作表信息函數:Info。功能:返回當前操作環境的有關信息。語法結構:=Info(返回信息代碼)。目的:返回當前文件的完整路徑。