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

2021-01-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多張工作表的數據查詢
    日常工作中,並不是所有的員工信息都會被經常用到,恰恰相反,經常用到的欄位,一般是固定的幾個。當表格信息較多時,去尋找某個記錄的某些欄位信息,是比較耗時耗力的。如果可以根據提供的某條記錄的標識符,就可以依據該標識符快速展示出屬於該記錄的欄位數據,並且能夠屏蔽其他不關心的數據,那麼體驗就會大幅提升。如上所示,建立幾個工作表的數據查詢。
  • Power Query中的「追加查詢」可以實現合併多個工作表和工作簿
    通過講解合併工作表和工作簿,來實現深入理解PQ追加查詢。 01 PQ追加查詢合併工作表 案例 老闆給我們發過來一個Excel表格,裡面包含了100+個sheet表格。
  • 利用ADO,實現多數據在工作表間查詢的方法
    大家好,今日繼續講解VBA資料庫解決方案,今日內容是利用ADO實現兩個工作表間的查詢。在VBA的應用中,我一直在推崇的是VBA實現數據處理的自動化,也在不同的章節中講如何利用VBA進行數據的自動處理。在數據處理中,查詢一直是一大塊的內容,在工作表中,我們可以應用的方法有:查找CTRL+F,篩選,定位,進而有工作表函數LOOKUP;如果您已經上手了VBA,查找就變的非常簡單了,有多個方案可以利用,有單元格的直接判斷,有FIND,FINDNEXT等系列的方案。今日我們講的內容和以往有所不同,是利用ADO及SQL語句來實現的查找。
  • 工作表數據查詢時,類似篩選功能LIKE和NOT LIKE的應用
    大家好,我們繼續講解VBA資料庫解決方案,今日講解第53講內容:工作表查詢時,類似於篩選功能的LIKE和NOT LIKE 的應用。大家在工作的時候,利用EXCEL操作,篩選是必不可少的工具之一。例如我們可以篩選以某個字符開頭的數據,或者篩選不以某個字符開始的數據,那麼這個功能如何在ADO連接EXCEL進行查詢時實現呢?
  • 利用VBA,如何在資料庫中新建查詢表,並在工作表中顯示其內容
    大家好,今日講解VBA資料庫解決方案第19講:如何在資料庫中新建一個查詢表,並在工作表中顯示出來。關於Recorsset集合的一些操作講解,在前幾講中講了很多,這裡提醒大家一點:任何對象都不是孤立存在的,要結合實際來理解。
  • Excel工作表中必須掌握的4個多條件查詢引用技巧
    目的:查詢相關「產品」在相應「地區」的銷量。方法:在目標單元格中輸入公式:=SUMIFS(C3:C9,B3:B9,H3,E3:E9,I3)。2、如果數據源中的數據沒有重複的記錄,在用Sumifs求和的同時,間接的實現了查詢引用功能。二、多條件查詢引用:Sumproduct函數法。目的:查詢相關「產品」在相應「地區」的銷量。
  • 如何將12個月的工資數據快速匯總到一個工作表中?
    (比如工資表中存在員工增減的情況。)第四, 多個表格之間的列數和列的位置是固定不變的。即所有表格的列結構是一樣的。工資表第一行中的標題,即欄位名通常都是固定的。因為企業工資表的項目以及項目的位置通常不會變化。「顧總,這種表格用什麼方法進行匯總呢?」「可以用SQL語句的方法將12個月的表格匯總成一份總表,然後再用數據透視表進行數據匯總和分析。」
  • Excel中多個表格數據,一鍵查詢並顯示!
    之前介紹過關於如何一鍵篩選其他工作表或工作簿的數據,後臺又有粉絲問了相關的問題,今天再來給大家介紹一下這個實例,數據經過了一些簡化。 情況是這樣的,有三個表分別是「基本信息」、「問題情況」、「榮譽情況」,分別記錄了人員的基本信息,人員出現的問題記錄和榮譽記錄,如下圖:
  • 通過相同欄位合併兩個不同工作表的三種方法
    >彈出的對話框,直接選擇數據透視表吧,數據放在新工作表中,這樣也不破壞原有的表格數據:上表中,點擊屬性按鈕後,選擇定義選項卡,其他都保持不變,在命令文本中輸入:SELECT A.,取的個別名而已,Left join是左聯合的意思,也就是以A的數據為基礎了,ON後面跟的就是條件了,這裡的條件很顯示兩個表要聯合,相同的欄位是姓名嘛。
  • MSSQL中的聯合查詢與視圖
    前面幾篇講到SQL資料庫的一些查詢的基本語句,今天分享一下聯合查詢與視圖,這些在實際項目中用的也很多,問題也不少。一、聯合查詢: 關鍵詞Union 和 Union all我們先看下會用到的2張表:TableA ,TableB現在我們做幾個實驗:(1)將TableA中的第一條和第三條記錄聯合顯示:select * from TableA WHERE xh=1union allselect * from TableA
  • 在工作表查詢中如何應用右外連接
    在工作表查詢中如何應用右外連接。什麼是右外連接呢?就是是以右表為基準,將條件數據進行連接,然以將右表為基礎,沒有對應項顯示的左表列為NULL,換種說法,就是根據右表的記錄,在被連接的左表中找出符合條件的記錄與之匹配,如果找不到匹配的,用null填充。
  • 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及以上版本可用
  • 大數據查詢時,固定長度字符和多個起始字符匯總查詢的實現
    大家好,我們繼續講解VBA資料庫解決方案,今日講解第54講內容:工作表查詢時,固定長度字符和多個起始字符匯總查詢功能的實現。在上一講的內容中,我們講了類似於篩選功能的實現,今日內容和上講比較複雜些,其一是固定長度的字符篩選,也就是說篩選的是具有固定長度的符號;其二,多個起始字符的查詢,是指多個開始符號的字符。
  • Excel如何實現快速查詢任意員工的檔案數據
    Excel如何實現快速查詢任意員工的檔案數據使用Excel製作員工檔案表,還能省去傳統人事管理中翻查檔案袋的步驟,提高工作效率。本節製作思路建立員工檔案查詢表框架:建立員工檔案查詢表的框架,確定表格的整體架構和基調實現快速查詢:要實現員工檔案的快速查詢,還需要建立公式讓各項檔案數據與某一項唯一數據掛鈎。
  • Excel工作表中最常用的10個函數,中文解讀,動圖演示,易學易用
    Excel工作表中的函數是非常的繁多的,如果要全部掌握,幾乎是不可能的,也沒有這個必要,不用行業,不同部門對函數需求都不同,所以,只需要掌握自己常用的部分函數即可,但是,下文中的10個函數是部分行業和部門的,所有的從業人員必須100%全部掌握!
  • Excel工作表中最常用的9類21個函數,動圖演示,中文解讀!
    在Excel工作表中,有一個非常重要的工具,那就是函數公式,如果要全部掌握,幾乎是不可能的,但是對於一些常用的公式則必須掌握,例如下文的9類21個公式!一、Excel工作表函數:求和類。(一)Sum。解讀:參數中的「條件」和「返回值」必須成對出現,但該函數僅能應用於16及以上版本的Excel中,在WPS高版本中也可以使用哦!三、Excel工作表函數:查找類。
  • VLOOKUP 函數跨表查詢操作
    在實際工作中常常需要跨表查找數據,面對兩個排序規則不同、數據量極大、數據行數不一致的表,如果只靠人工查詢,很難高效完成工作並且容易出錯。利用Excel自帶的VLOOKUP查找函數,可以很輕鬆完成此類工作。
  • Excel工作表中的20個信息函數應用技巧解讀,硬核乾貨哦!
    三、Excel工作表信息函數:Info。功能:返回當前操作環境的有關信息。語法結構:=Info(返回信息代碼)。方法:在目標單元格中輸入公式:=IF(ISERROR(K3),"是","否")。除「李雲龍」之外,每位員工都可以查詢到「月薪」,所以返回值為「否」,而工作表中沒有關於「李雲龍」的信息,所以返回值為「是」。
  • Excel工作表中的7個資料庫函數解讀,易懂易理解,方便且實用!
    在Excel工作表中,有一類函數成為資料庫函數,也被稱為D函數,共計有12個,但我們常用的有7個,今天,我們來了解和學習這7個資料庫函數。一、Excel工作表資料庫函數:Dsum。三、Excel工作表資料庫函數:Dcount。功能:從給定條件的資料庫記錄的欄位(列)中,計算數值單元格數目。
  • 一對多查詢的幾個公式,可以直接套用,閒公式複雜,用數據透視表
    從表格中按條件查詢數據一般都要想到LOOKUP和VLOOKUP函數,還有一個INDEX和MATCH函數組合也是超好用的。但這些函數普通用法,只會查找到第1個符合條件的結果,如果碰到下圖中的情況,有多個結果時,普通用法難以完成。今天分享一對多查詢的幾個公式,公式都比較複雜,用時直接複製粘貼,再修改單元格地址即可,不明白可以留言或私信我。另外,最後一種方法用數據透視表功能來完成,相信小夥伴們都能學會!