microsoft access数据库引擎找不到输入表或查询'Test'。确保它存在并且其名称拼写正确

时间:2013-06-10 06:15:02

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

在访问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];

我正在创建一个第4桌TEST使用union all by clubbing 2 table Data1& Data2并确保只有记录用于从代码表中获取的类别代码。任何想法为什么它给我这个错误?

如果我删除这行是一个自联接到由union all创建的表:     和测试。[样品成分] IN(选择不同的测试。[样品成分]来自测试)

我可以运行查询....

另外,现在我指定了COUNTRY =“UNITED STATES”。但是我如何指定COUNTRY =“<> UNITED STATES”或COUNTRY =所有国家/地区,以便我可以为每个国家/地区获得总计?

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

1 个答案:

答案 0 :(得分:0)

在创建之前,您无法引用TEST,并且您将在查询结果时创建它。你将不得不用2个查询来完成它,因为你需要UNION ALL中的所有结果。

COUNTRY<> “美国”将回答你的第二个问题。