MSAccess 2013:UNION 3个表中的任何2个起作用,UNION 3个崩溃

时间:2018-11-23 19:00:08

标签: sql ms-access crash union

距离我在Access中使用UNION查询已经有好几年了,但是我不明白为什么这不起作用。我想念什么?

 SELECT IDAudit, TableName, RowID, ChangeDate, IDAPSCase
 FROM dbo_APSCEI INNER JOIN (dbo_Audit INNER JOIN dbo_TableType ON dbo_Audit.IDTableType = dbo_TableType.IDTableType) 
 ON dbo_APSCEI.IDAPSCEI = dbo_Audit.RowID
 WHERE (((TableName)="APSCEI") AND ((IDAPSCase)=379017))

 UNION SELECT IDAudit, TableName, RowID, ChangeDate, IDAPSCase
 FROM dbo_APCSUN INNER JOIN (dbo_Audit INNER JOIN dbo_TableType ON dbo_Audit.IDTableType = dbo_TableType.IDTableType) 
 ON dbo_APCSUN.IDAPCSUN= dbo_Audit.RowID
 WHERE (((TableName)="APCSUN") AND ((IDAPSCase)=379017))

 UNION SELECT IDAudit, TableName, RowID, ChangeDate, IDAPSCase
 FROM dbo_APSCAI INNER JOIN (dbo_Audit INNER JOIN dbo_TableType ON     dbo_Audit.IDTableType = dbo_TableType.IDTableType) 
 ON dbo_APSCAI.IDAPSCAI = dbo_audit.RowID
 WHERE (((TableName)="APSCAI") AND ((IDAPSCase)=379017))
 ORDER BY ChangeDate DESC , IDAPSCase;

分别使用所有3条SELECT语句。我可以删除3个SELECT语句中的任何一个,它将起作用。但是,使用这3种命令,尝试运行甚至保存它,都会使Access崩溃。但是,尽管崩溃了,但它确实保存了编辑。 (Microsoft Access已停止工作。Windows可以尝试恢复您的信息。)

所涉及的3个表中的2个(dbo_Audit和dbo_TableType)始终相同;只有第3个表格会发生变化。输出列始终相同。语法始终相同。

如果我在任何WHERE子句中添加了额外的')',它将捕获错误而不会崩溃。当我删除它并尝试运行或保存它时,它再次使Access崩溃。我的意思是语法检查器可以处理它,而查询优化器则不能。

1 个答案:

答案 0 :(得分:0)

在我看来,排序方式仅影响最后一个查询。 如果您需要订购结果,请进行如下查询: SELECT * FROM MyUnionQuery ORDER BY ChangeDate DESC , IDAPSCase 一切都应该很好!