使用ADO查询SQL中的多个计数
我正在尝试通过ADO计算一些表中的项目数。 查询如下:使用ADO查询SQL中的多个计数,sql,vba,ado,Sql,Vba,Ado,我正在尝试通过ADO计算一些表中的项目数。 查询如下: select count(*) as a from TABLE1; select count(*) as b from TABLE2; 如果我通过SQL GUI运行它,我会得到: a ------------ 1 b ------------ 0 到目前为止还不错 但是,如果我运行此代码(VBA): 它在adoRecords上失败!b如果我选中adoRecords对象,字段字段只有一项,即a 如果我在两个单独的查询中运行它,它工作得很好
select count(*) as a from TABLE1;
select count(*) as b from TABLE2;
如果我通过SQL GUI运行它,我会得到:
a
------------
1
b
------------
0
到目前为止还不错
但是,如果我运行此代码(VBA):
它在adoRecords上失败!b如果我选中adoRecords对象,字段字段只有一项,即a
如果我在两个单独的查询中运行它,它工作得很好(但是我有一个重要的往返时间,所以这很麻烦…)
如何通过ADO获得两个输出
非常感谢你的帮助
最大化
SELECT COUNT(*) cnt FROM table1
UNION
SELECT COUNT(*) cnt FROM table2
您将执行一条语句并检索2行1列。Do
您将执行一条语句并检索2行1列。这将只生成一条记录(根据您的需要),其中包含两个表中的计数
select (select count(*) from TABLE1) as cntTbl1, (select count(*) from TABLE2) as cntTbl2
UNIONALL解决方案将在每个表上生成一条记录,并且需要对该表的引用
select count(*) as cnt, 'table1' as reference from table1
union all
select count(*),'table2' from table2
这将只生成一条记录(如您所需),其中包含两个表中的计数
select (select count(*) from TABLE1) as cntTbl1, (select count(*) from TABLE2) as cntTbl2
UNIONALL解决方案将在每个表上生成一条记录,并且需要对该表的引用
select count(*) as cnt, 'table1' as reference from table1
union all
select count(*),'table2' from table2
如果要将它们列在彼此下方,请使用UNION而不是;UNION ALL更好。如果您想将它们列在彼此下面,请使用UNION而不是;联合所有更好。如果数字相同,请改为联合所有。谢谢你们。事实上,大家都非常需要工会。如果人数相同,请大家都加入工会。谢谢大家。工会确实非常需要。