1

我在使用联合查询时遇到了这个问题。当我尝试使用超过 2 条 UNION 语句时,我发现了这个错误——“微软访问数据库引擎找不到对象”。确保对象名称存在并且您正确拼写其路径名称。” SQL 代码为:

    SELECT [Pt data 1].IDno, [Pt data 1].pt_name, [Expected visit date modified].[Visit day], [Expected visit date modified].[Visit Time], [Pt data 1].[visit_14d_st] AS Status
    FROM [Expected visit date modified] INNER JOIN [Pt data 1] ON [Expected visit date modified].IDno = [Pt data 1].IDno
    WHERE ((([Expected visit date modified].[Visit Time])="Day 14") AND (Not ([Pt data 1].[visit_14d_st])="Data Entered" And Not ([Pt data 1].[visit_14d_st])="Missed Visit"));
    UNION 
    SELECT [Pt data 1].IDno, [Pt data 1].pt_name, [Expected visit date modified].[Visit day], [Expected visit date modified].[Visit Time], [Pt data 1].[visit_28d_st] AS Status
    FROM [Expected visit date modified] INNER JOIN [Pt data 1] ON [Expected visit date modified].IDno = [Pt data 1].IDno
    WHERE ((([Expected visit date modified].[Visit Time])="Day 28") AND (Not ([Pt data 1].[visit_28d_st])="Data Entered" And Not ([Pt data 1].[visit_28d_st])="Missed Visit"));
    UNION 
    SELECT [Pt data 1].IDno, [Pt data 1].pt_name, [Expected visit date modified].[Visit day], [Expected visit date modified].[Visit Time], [Pt data 1].[visit_42d_st] AS Status
    FROM [Expected visit date modified] INNER JOIN [Pt data 1] ON [Expected visit date modified].IDno = [Pt data 1].IDno
    WHERE ((([Expected visit date modified].[Visit Time])="Day 42") AND (Not ([Pt data 1].[visit_42d_st])="Data Entered" And Not ([Pt data 1].[visit_42d_st])="Missed Visit"));

问题是该查询适用于两个查询中的任何一个,但不适用于所有三个。我完全坚持这一点。请提供任何帮助。谢谢。

4

1 回答 1

0

UNION 查询很难阅读,也很难检查拼写错误。我建议您将每个语句放入已保存的查询中(例如“qryVisit_Day14”、“qryVisit_Day28”)。然后使您的 UNION 查询如下所示:

      SELECT * FROM qryVisit_Day14
UNION SELECT * FROM qryVisit_Day28
UNION SELECT * FROM qryVisit_Day42
于 2013-03-02T16:46:52.773 回答