使用带有 SQL Server 后端的 MS Access,我有一个表,基本上存储了另一个表中的 Parameter 字段的分组。
例如,我将参数存储在 TBL_Parameter 中:(只是数据的一个非常小的子集)
范围 铁 (Fe) 铁 (Fe)-溶解 铁 (Fe)-总
表 TBL_ParentParameter 如下所示:
父子 铁 (Fe) 铁 (Fe)-溶解 铁 (Fe) 铁 (Fe)-总
然后,我想创建一个查询,将 TBL_ParentParameter 中未作为子项包含的所有参数与 TBL_ParentParameter 中包含的所有参数组合起来,因此我进行了以下联合查询:
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 的一个错误,颠倒两个联合子查询的顺序解决了这个问题。