使用 ADO 查询 SQL 中的多个计数
Using ADO to query multiple counts in SQL
我正在尝试通过 ADO 计算某些表中的项目数。
查询如下:
select count(*) as a from TABLE1;
select count(*) as b from TABLE2;
如果我 运行 通过我的 SQL GUI,我得到:
a
------------
1
b
------------
0
到目前为止一切顺利。
但是,如果我 运行 此代码 (VBA):
Dim adoCon As New ADODB.Connection
Dim adoRecords As ADODB.Recordset
Dim query As String
query ="select count(*) as a from TABLE1;select count(*) as b from TABLE2;"
adoRecords = adoCon.Execute(query)
Debug.Print(adoRecords!a)
Debug.Print(adoRecords!b)
它在 adoRecords!b
上失败如果我检查 adoRecords 对象,Fields 字段只有一项,a.
如果我在两个单独的查询中 运行 它,它工作正常(但我有一个重要的往返时间,所以这很麻烦...)。
如何通过 ADO 获得两个输出?
非常感谢您的帮助,
马克西姆
做
SELECT COUNT(*) cnt FROM table1
UNION
SELECT COUNT(*) cnt FROM table2
您将执行一个语句并检索 2 行 1 列。
这将只生成一条记录(如您所愿),其中包含来自 tables
的计数
select (select count(*) from TABLE1) as cntTbl1, (select count(*) from TABLE2) as cntTbl2
联合所有解决方案将在每个 table 上生成一条记录,并且需要引用 table
select count(*) as cnt, 'table1' as reference from table1
union all
select count(*),'table2' from table2
我正在尝试通过 ADO 计算某些表中的项目数。 查询如下:
select count(*) as a from TABLE1;
select count(*) as b from TABLE2;
如果我 运行 通过我的 SQL GUI,我得到:
a
------------
1
b
------------
0
到目前为止一切顺利。
但是,如果我 运行 此代码 (VBA):
Dim adoCon As New ADODB.Connection
Dim adoRecords As ADODB.Recordset
Dim query As String
query ="select count(*) as a from TABLE1;select count(*) as b from TABLE2;"
adoRecords = adoCon.Execute(query)
Debug.Print(adoRecords!a)
Debug.Print(adoRecords!b)
它在 adoRecords!b
上失败如果我检查 adoRecords 对象,Fields 字段只有一项,a.
如果我在两个单独的查询中 运行 它,它工作正常(但我有一个重要的往返时间,所以这很麻烦...)。
如何通过 ADO 获得两个输出?
非常感谢您的帮助,
马克西姆
做
SELECT COUNT(*) cnt FROM table1
UNION
SELECT COUNT(*) cnt FROM table2
您将执行一个语句并检索 2 行 1 列。
这将只生成一条记录(如您所愿),其中包含来自 tables
的计数select (select count(*) from TABLE1) as cntTbl1, (select count(*) from TABLE2) as cntTbl2
联合所有解决方案将在每个 table 上生成一条记录,并且需要引用 table
select count(*) as cnt, 'table1' as reference from table1
union all
select count(*),'table2' from table2