0
我正在使用Excel VBA並使用OleDB連接到PGSQL。我有2行SQL代碼可以獨立運行,但我現在需要合併它們。 的第一個查詢是查找我需要第二次查詢SQL JOIN主組到結果組
Const sqlconnection = "Provider=oledb;"
Dim conn As New Connection
conn.ConnectionString = sqlconnection
conn.Open
Dim rs As Recordset
Sheets("Sheet1").Select
Range("A1").Select
Dim GRP As String
GRP = "SELECT h.master_id, p.surname, p.forename1, h.eventdate, h.code " _
& "FROM hist h INNER JOIN person p ON h.master_id=p.entity_id " _
& "AND code LIKE 'C10%' " _
& "ORDER BY h.master_id "
第二屆查詢需要的基礎上才發現人的第一組,顯示效果人民主體組。
Dim DATA As String
DATA = "SELECT latest.master_id, p.surname, p.forename1, " _
& "SUBSTRING(latestAP,1,10) eventdate, " _
& "SUBSTRING(latestAP,12,3) TX1, " _
& "SUBSTRING(latestAP,16,3) TX2 " _
& "FROM (" _
& "SELECT master_id, " _
& "MAX(CAST(eventdate AS VARCHAR(10)) + '.' + RIGHT('00' + TEXT1,3)+ '.' + RIGHT('00' + TEXT2,3)) as latestAP " _
& "FROM ap " _
& "GROUP BY master_id) AS latest " _
& "LEFT JOIN person p ON latest.master_id = p.entity_id " _
& "ORDER BY master_id "
Set rs = conn.Execute(DATA)
With ActiveSheet.QueryTables.Add(Connection:=rs, Destination:=Range("A1"))
.Refresh
End With
rs.Close
這是美妙謝謝。然而,我不斷收到一個運行時錯誤「缺少表」h「的FROM-clause條目; SQLSTATE 42P01 – BradleyS
我現在從你的代碼中得到了這個工作,所以非常感謝你,我刪除了h。引用,它工作得很好。太多了 – BradleyS
很好聽!有趣的是,h引用可能是由於需要'AS h'作爲表別名,但是p引用沒有失敗。 – Parfait