我使用ADODB从SQL Server中选择我的VBA代码中的数据,并且想加入几个查询。在Excel VBA中存储SQL Server查询以便加入
比方说,我有两个疑问:
query1 = _
"select tblA.x,tblB.y from tblA inner join tblB on tblA.x=tblB.x"
query2 = _
"select tblA.x,tblA.abc from tblA inner join " & _
"(select max(tblA.x) as maxX from tblA group by x) qryA on tblA.x=qryA.maxX"
,我与运行查询:
Public sub getRecordsets(objConn as ADODB.Connection,rs1 as ADODB.Recordset,rs2 as ADODB.Recordset)
rs1.Open query1, objConn
rs2.Open query2, objConn
End Sub
我想在第三个记录加入这两个查询。我知道我可以编写一个连接两个查询的长SQL语句,但我想将它们分开,以使代码更易于维护。
如果我使用的MS Access,我会创建两个存储查询query1
和query2
,然后从中选择如下:
select y,abc from query1 inner join query2 on query1.x=query2.x
有没有办法,我可以加入记录集的方法吗?我没有写入权限来在SQL Server数据库中创建UDF或视图;如果我能够获得写权限,那我该怎么做?
你有没有考虑使用'UNION ALL'和单个查询?为什么你想要一个记录集而不是两个单独的记录集? –
@TimWilliams,我不想从每个查询中得到行的联合,我想通过它们的公共密钥加入它们:'query1.x = query2.x',这样我就可以看到哪个'y'值匹配哪个' abc'值。 – sigil