UNION ALL
SQL語句的限制
1.SQL查詢連接的表上限50個(最多50個表)
2.查詢語句字符限制38596個字符(不超過38596個)
超過了會出現如下二個錯誤提示類型之一:
1.“查詢過於複雜"
2."獲取表格數據時發生錯誤"。
源數據:
二表連接:
Sql = "SELECT 日期,姓名,產量 FROM [表1$] union all SELECT 日期,姓名,產量 FROM [表2$]"
結果就不展示了,大家可以自己練習:
多表連接目標如下:
代碼運行結果如下:
代碼如下:
注意事項:
' Sql1 = "SELECT 日期,姓名,產量 " For Each Sht In Worksheets Sht_name = Sht.Name If Sht_name <> ActiveSheet.Name Then Sql = Sql & Sql1 & "FROM [" & Sht_name & "$] UNION ALL " End If Next Sql = Left(Sql, Len(Sql) - 11)
多表查詢的時候,沒有直接像二表查詢的時候,直接使用UNION ALL來連接工作表,而是採用了循環的方式來生成SQL的額語句。
Sql = Left(Sql, Len(Sql) - 11) 這一句,大家可以想一想為什麼?
小提示:
如果沒有這一句:
Sql ="SELECT 日期,姓名,產量 FROM [表1$] UNION ALL SELECT 日期,姓名,產量 FROM [表2$] UNION ALL SELECT 日期,姓名,產量 FROM [表3$] UNION ALL "
有了這一句之後:
Sql="SELECT 日期,姓名,產量 FROM [表1$] UNION ALL SELECT 日期,姓名,產量 FROM [表2$] UNION ALL SELECT 日期,姓名,產量 FROM [表3$]"