我不確定是否可能,但我正在嘗試嵌套查詢。首先,我創建以下 2 個查詢:
MyQuery = "Select * from " & "T1"
MyQuery2 = "Select * from " & "T2"
然后我想比較兩個查詢并以下列方式回傳差異:
mkQry = "SELECT (" & MyQuery & ").*" _
& "FROM (" & MyQuery & ") LEFT JOIN (" & MyQuery2 & ") ON " _
& "(" & MyQuery & ".F1) = " & MyQuery2 & ".F1) AND " _
& "(" & MyQuery & ".F2 = " & MyQuery2 & ".F2) AND " _
& "(" & MyQuery & ".F3 = " & MyQuery2 & ".F3) AND " _
& "(" & MyQuery & ".F4 = " & MyQuery2 & ".F4) AND " _
& "(" & MyQuery & ".F5 = " & MyQuery2 & ".F5)" _
& "WHERE (((" & MyQuery2 & ".F5) Is Null))"
Set MyRecordset99 = MyConnection2.Execute(mkQry)
Worksheets("TST").Range("A1").CopyFromRecordset MyRecordset99
但是,mkQry包含一個syntax error,我不知道如何解決這個問題。
我的問題是:
是否可以按照我嘗試的方式或多或少地嵌套查詢,如果是這樣,我該如何更新語法以使其作業。
uj5u.com熱心網友回復:
您應該為每個子查詢設定別名,然后在整個程序中使用別名。
mkQry = "SELECT x.* " _
& "FROM (" & MyQuery & ") x LEFT JOIN (" & MyQuery2 & ") y ON " _
& "(x.F1 = y.F1) AND " _
...
& "(x.F5 = y.F5) " _
& "WHERE (((y.F5) Is Null))"
uj5u.com熱心網友回復:
您可以使用以下語法執行嵌套查詢:
Select * from T1 Where Field01 In (Select Field02 from T2)
如果要比較兩個查詢的結果,可以這樣做:
select T1.FieldList, T2.FieldList from T1 FULL OUTER JOIN T2 On T1.Field01 = T2.Field01
then (T1.Field01 is Null) and (T2.Field01 Not is null) ==> T2中存在但T1中不存在的所有記錄
and (T1.Field01 Not is Null) and (T2.Field01 is null) ==> T1中存在但T2中不存在的所有記錄
and (T1.Field01 Not is Null) and (T2.Field01 Not is null) ==> 兩者中都存在的所有記錄
我希望它可以幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/429065.html
