将 MS Access 与 SQL Server 后端一起使用,我有一个表,基本上存储了另一个表中参数字段的分组。
例如,我将参数存储在 TBL_Parameter 中:(只是数据的一个很小的子集)
Parameter Iron (Fe) Iron (Fe)-Dissolved Iron (Fe)-Total
The table, TBL_ParentParameter looks like this:
Parent Child Iron (Fe) Iron (Fe)-Dissolved Iron (Fe) Iron (Fe)-Total
Then I want to create a query to combine all parameters not contained as a child in TBL_ParentParameter with all the ones that are contained in TBL_ParentParameter, so I made the following union query:
SELECT Parameter, Parameter AS Child
FROM TBL_Parameter
WHERE Parameter NOT IN(SELECT Child FROM TBL_ParentParameter)
UNION
SELECT Parent AS Parameter, Child
FROM TBL_ParentParameter
这具有以下预期结果:
父子
铁 (Fe) 铁 (Fe)
铁 (Fe) 铁 (Fe)-溶解
铁 (Fe) 铁 (Fe)-总计
而是给出:
父子
铁 (Fe) 铁 (Fe)
铁 (Fe)-溶解 铁 (Fe)-溶解
铁 (Fe)-总铁 (Fe)-总
现在联合查询中的每个查询都可以单独正常工作,但是当联合时,它们不能正常工作。我已经尝试了这个与直接到 SQL 服务器的直通查询完全相同的查询,它工作得很好,但是如果我基于这个查询的其他查询,我发现它可能需要更长的时间才能运行。那么有没有人知道这里的问题是什么?这是某种 MS Access 错误吗?还是我看错了?
已解决:这似乎是 MS Access 的一个错误,颠倒两个联合子查询的顺序可以解决此问题。
最佳答案
您的查询是正确的。我运行了它,我得到了你发布的倒数第二块代码。
关于sql - 奇怪的 MS Access Union 问题 : Union is not actually union,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11870326/