Access使用UNION ALL合并异字段表时丢失指定字段如何解决
问题原因
UNION ALL 要求上下两个查询的列数量、列顺序、对应位置的数据类型必须完全匹配,你使用SELECT *的写法时,Access会以第一个SELECT语句返回的字段列表为基准匹配第二个SELECT的字段,第二个表独有的Amount-F21无法匹配第一个表的字段结构,自然不会出现在最终结果中。
解决方法
手动列出所有需要保留的字段,两个表独有的字段在对方的查询中用NULL占位,同时保持字段顺序一致:
SELECT 公共字段1, 公共字段2, -- 其他所有公共字段按顺序列全 [Amount A-21], NULL AS [Amount-F21] FROM [Source Alloc-A21] UNION ALL SELECT 公共字段1, 公共字段2, -- 其他所有公共字段和上面的顺序、字段名完全对应 NULL AS [Amount A-21], [Amount-F21] FROM [Source Alloc-F21]
注意:请把上面的
公共字段1、公共字段2替换成你两张表实际共有的所有字段,确保上下两个SELECT的字段顺序完全一致,否则会出现字段数据错位的问题。
内容的提问来源于stack exchange,提问作者David Malvin
相关产品推荐
相关产品推荐

