没有FROM子句的SELECT

时间:2018-03-09 20:09:51

标签: sql database ms-access select

我正在为MS Access数据库编写一个SQL语句,目的是计算3个不同查询的值,所以我尝试了这种方式:

SELECT(query1 + query2 + query3) AS Qtd

每个查询都从聚合函数计数中返回一个唯一值,即query1 = SELECT Count(something) FROM Table WHERE...

一切都应该正常,但MS Access需要一个FROM子句。当我在该查询中放置一个表格(而不是更改上面的SELECT语句)时,我最终会得到行的音调,而每行都是Qtd列所期望的结果。

那么有没有办法跳过FROM条款或唯一的解决方法是写TOP 1(或DISTINCT),因为没有必要,所以不能获得重复行的音调FROM子句中的表?

2 个答案:

答案 0 :(得分:3)

您可以union all查询,然后sum所有结果:

SELECT SUM(cnt)
FROM   (SELECT COUNT(*) AS cnt FROM table1 WHERE ...
        UNION ALL
        SELECT COUNT(*) AS cnt FROM table2 WHERE ...
        -- Etc..
       ) t

答案 1 :(得分:2)

考虑聚合查询的交叉连接(逗号分隔表):

SELECT (query1.CntColumn + query2.CntColumn + query3.CntColumn) AS Qtd
FROM query1, query2, query3