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
これは素晴らしいですありがとうございました。しかし、私は実行時エラー "table" h "のFROM-clauseエントリが見つからずに残っています; SQLSTATE 42P01 – BradleyS
これはあなたのコードから今ではうまくいきましたので、どうもありがとうございます。 so much much – BradleyS
面白い、h参照は、テーブルエイリアスに必要な 'AS h'によるかもしれませんが、p参照は失敗しませんでした。 – Parfait