【问题标题】:the microsoft access database engine cannot find the input table or query 'Test'. Make sure it exists and that its name is spelled correctlymicrosoft access 数据库引擎找不到输入表或查询“测试”。确保它存在并且其名称拼写正确
【发布时间】:2013-06-10 22:14:54
【问题描述】:

在 access 2010 中出现以下错误,

the Microsoft access database engine cannot find the input table or query 'Test'. 
Make sure it exists and that its name is spelled correctly.

跑步时,

SELECT 
      TEST.[CATEGORY CODE] AS CATEGORYCODE
    , TEST.[SAMPLE COMPOSITION] AS SAMPLECOMPOSITION
    , Sum(TEST.[WPI]) AS [SumOfWPI]
    , Sum(TEST.[Mean Freq Year Fav]) AS [SumOfMean Freq Year Fav] 
FROM 
(
    SELECT * 
    FROM DATA1 
    WHERE DATA1.[CATEGORY CODE] IN (
            SELECT DISTINCT CODES.[CATEGORY CODE] 
            FROM CODES
        ) 

    UNION ALL 

    SELECT * 
    FROM DATA2 
    WHERE DATA2.[CATEGORY CODE] IN (
            SELECT DISTINCT CODES.[CATEGORY CODE] 
            FROM CODES
        ) 
) AS TEST 
WHERE TEST.[COUNTRY] = 'UNITED STATES' 
    AND TEST.[SAMPLE COMPOSITION] IN (
        SELECT DISTINCT TEST.[SAMPLE COMPOSITION] 
        FROM TEST
    ) 
    AND TEST.[CATEGORY CODE] IN (
        SELECT DISTINCT CODES.[CATEGORY CODE] 
        FROM CODES
    ) 
GROUP BY TEST.[CATEGORY CODE], TEST.[SAMPLE COMPOSITION] 
ORDER BY TEST.[CATEGORY CODE];

我正在使用 union all 创建第 4 个表 TEST,方法是将 2 个表 Data1 和 Data2 合并,并确保只有记录用于从 Codes 表中获取的类别代码。任何想法为什么给我这个错误?

如果我删除此行,它是由 union all 创建的表的自联接: AND TEST.[SAMPLE COMPOSITION] IN (SELECT DISTINCT TEST.[SAMPLE COMPOSITION] FROM TEST)

我可以运行查询....

另外,现在我指定了 COUNTRY = "UNITED STATES"。但是我如何指定 COUNTRY="UNITED STATES" OR COUNTRY= 所有国家,以便我可以获得每个国家的总计?

现在我正在做多个标准自动过滤器来实现这一点,但它需要 1.5 天,因为将 2 个表合并后的数据约为 92000 条记录。因此,尝试访问以实现相同的目标。如果有人可以帮助我,那么我可以发送一个包含数据的示例文件。

【问题讨论】:

    标签: sql ms-access ms-access-2010 union-all


    【解决方案1】:

    在创建 TEST 之前,您不能引用它,并且您正在创建它作为查询的结果。您将不得不使用 2 个查询来完成此操作,因为您需要 UNION ALL 中的所有结果。

    COUNTRY "UNITED STATES" 将回答您的第二个问题。

    【讨论】:

    • 我确信有办法做到这一点,而不是设置 2 个查询。关于我的第二个问题,我如何显示包括美国在内的所有国家?
    • 所有国家都是 COUNTRY = *
    • 我可以有类似 WHERE COUNTRY LIKE ("*", "UNITED STATES", "UNITED STATES") 之类的东西并得到每个的总数吗?
    • 我猜没人知道。
    • 尝试执行以下操作: IIf([Country]="*","United States"," United States") AS TestCol 然后您可以按该列分组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    相关资源
    最近更新 更多