Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ADO查询SQL中的多个计数_Sql_Vba_Ado - Fatal编程技术网

使用ADO查询SQL中的多个计数

使用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 如果我在两个单独的查询中运行它,它工作得很好

我正在尝试通过ADO计算一些表中的项目数。 查询如下:

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而不是;联合所有更好。如果数字相同,请改为联合所有。谢谢你们。事实上,大家都非常需要工会。如果人数相同,请大家都加入工会。谢谢大家。工会确实非常需要。