ms-access:数据库引擎无法找到输入表或查询

时间:2010-05-14 19:40:28

标签: sql ms-access

这是查询:

SELECT *
FROM (SELECT [Occurrence Number], [Occurrence Date], [1 0 Preanalytical (Before Testing)], [Cup Type], NULL as [2 0 Analytical (Testing Phase)], [2 0 Area], NULL as [3 0 Postanalytical ( After Testing)],NULL as  [4 0 Other], [Practice Code], [Specimen ID #] FROM [Lab Occurrence Form] 
WHERE NOT ([1 0 Preanalytical (Before Testing)] IS NULL)
  UNION
  SELECT [Occurrence Number],  [Occurrence Date],NULL, [Cup Type],[2 0 Analytical (Testing Phase)],  [2 0 Area], NULL,NULL, [Practice Code], [Specimen ID #] FROM  [Lab Occurrence Form]  WHERE NOT ([2 0 Analytical (Testing Phase)] IS NULL)
  UNION
  SELECT  [Occurrence Number],  [Occurrence Date],NULL, [Cup Type],NULL,  [2 0 Area], [3 0 Postanalytical ( After Testing)],NULL, [Practice Code], [Specimen ID #] FROM  [Lab Occurrence Form]  WHERE NOT ([3 0 Postanalytical ( After Testing)] IS NULL)
 UNION
  SELECT  [Occurrence Number],  [Occurrence Date],NULL, [Cup Type],NULL, [2 0 Area], NULL,  [4 0 Other] FROM  [Lab Occurrence Form], [Practice Code], [Specimen ID #]  WHERE NOT ([4 0 Other] IS NULL)
)  AS mySubQuery
ORDER BY mySubQuery.[Occurrence Number];

由于某种原因,它不喜欢[练习代码]。它绝对是表中的一列,所以我不明白这个问题。

错误是

microsoft office access数据库引擎找不到输入表或查询'Practice Code'........

2 个答案:

答案 0 :(得分:3)

嗯,错误说明了一切。它不是一张桌子。在您的问题中,您声明它是表中的列。 你有一个[Lab Occurrence Form], [Practice Code], [Specimen ID #],因此它假定那里列出的所有表都是表。

答案 1 :(得分:2)

UNION中的最后一个SQL SELECT有一个搞乱的FROM子句:

  SELECT [Occurrence Number],  [Occurrence Date],NULL, [Cup Type],NULL, [2 0 Area], NULL,  [4 0 Other] 
  FROM  [Lab Occurrence Form], [Practice Code], [Specimen ID #]  
  WHERE NOT ([4 0 Other] IS NULL) 

您似乎在FROM子句,[练习代码]和[标本ID#]中放了两个字段。