【问题标题】:SELECT with COUNT from multiple tables in access 2007从访问 2007 中的多个表中选择 COUNT
【发布时间】:2011-07-29 22:14:23
【问题描述】:

我有 2 个查询,分别称为“3 个月查询”和“6 个月查询”。现在我正在创建一个带有查询作为记录源的报告。我想计算 3 Month Query 中的行数并将其标记为 Need3Month,以及 6 Month Query 中的行数并将其标记为 Need6Month。我尝试了以下不起作用:

SELECT COUNT([3 Month Query].[ID]) AS Need3Month, COUNT([6 Month Query].[ID]) AS Need6Month FROM [3 Month Query], [6 Month Query];

我也试过了:

SELECT COUNT([3 Month Query].[ID] AS Need3Month FROM [3 Month Query]
UNION
SELECT COUNT([6 Month Query].[ID] AS Need6Month FROM [6 Month Query];

这会返回正确的数字,但会将它们都列在 Need3Month 列下。

我该怎么办?非常感谢任何帮助。

【问题讨论】:

    标签: sql select count ms-access-2007


    【解决方案1】:
    SELECT
      (SELECT COUNT([ID]) FROM [3 Month Query]) AS Need3Month,
      (SELECT COUNT([ID]) FROM [6 Month Query]) AS Need6Month
    

    UPDATE回复 cmets:

    SELECT
      COUNT([ID]) AS Need3Month,
      (SELECT COUNT([ID]) FROM [6 Month Query]) AS Need6Month
    FROM [3 Month Query]
    

    更新 2

    这也应该有效(我认为):

    SELECT
      Cnt6.Cnt AS Need3Month,
      Cnt3.Cnt AS Need3Month
    FROM
      (SELECT COUNT([ID]) AS Cnt FROM [3 Month Query]) AS Cnt3,
      (SELECT COUNT([ID]) AS Cnt FROM [6 Month Query]) AS Cnt6
    

    【讨论】:

    • 它说“查询输入必须包含至少一个表或查询”。当我执行上面的 SELECT 语句并添加到末尾“FROM [3 Month Query],[6 Month Query]”时,它给出了正确的数字,但是两行需要 Need3Month 和 Need6Month 我只想要一行...
    • 尝试只包括其中一张表
    • 我投了这个答案,因为我认为你比我少了几秒钟 :)
    • @jrubins:请查看替代解决方案。
    • 这似乎让我回到了最初的问题。事实上,这不是两行的问题,因为它仍然适用于我需要做的事情。非常感谢
    【解决方案2】:

    不确定它是否在 MS Access 中有效,但在 SQL 中你会这样做:

    SELECT 
        (SELECT COUNT(ID) FROM [3 Month Query]) Need3Month, 
        (SELECT COUNT(ID) FROM [6 Month Query]) Need6Month
    

    【讨论】:

    • 我们俩都看不到对方的答案。因此,老实说,这也是我的+1。 :)
    猜你喜欢
    • 2010-10-11
    • 1970-01-01
    • 2011-10-06
    • 2013-02-02
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多