访问联合查询奇数字符。

时间:2017-02-14 16:34:21

标签: ms-access union ms-access-2013

我有一个数据库,其中有一个联合查询,它会为报告提取一些数据。这已经工作了一段时间,我不得不将表格中的字段从短文本切换为带有丰富文本的长文本,以支持其他字体选项。在这样做的时候,当我运行查询时,有问题的字段会返回有趣的字符。该表称为tbl_Process,字段为Process。我已经尝试在该字段上设置索引,但它没有帮助。我可以稍微摸索一下联合查询,但它们是一个弱点,我希望有人可以查看查询,看看他们是否有任何建议。

SELECT tbl_Areas.Area_Detail AS Area, tbl_Areas.Product, tbl_Areas.Area_ID AS [Area Code], tbl_Areas.Revision AS [Area Book Revision], tbl_Processes.Group, tbl_Processes.Serial_Number AS [Process Serial Number], [Group] & "-" & [Product_Family] & [tbl_Products].[Size] & "-" & [tbl_Processes].[Serial_Number] & "-" & [tbl_Areas].[Area_ID] & "-" & [tbl_Processes]![Revision] AS [Document Name], tbl_Processes.Process, tbl_Processes.Revision AS [Process Revision], tbl_Finished_Product_Families.Common_Name AS [Product Family], tbl_Products.Size AS [Product Size], tbl_Models.Model_Definition AS [Product Model], tbl_ECN.Date_Published AS [ECN Date], Max(tbl_ECN.Revision) AS [ECN Revision], tbl_ECN.Engineer AS [Engineer of Record], tbl_Processes.Sequential_Position
FROM (tbl_Models INNER JOIN (tbl_Finished_Product_Families INNER JOIN tbl_Products ON tbl_Finished_Product_Families.Finished_Product_Family = tbl_Products.Product_Family) ON tbl_Models.Model = tbl_Products.Model) INNER JOIN (tbl_ECN RIGHT JOIN (tbl_Areas INNER JOIN tbl_Processes ON tbl_Areas.Area_ID = tbl_Processes.Area) ON tbl_ECN.Serial_Number = tbl_Processes.Serial_Number) ON tbl_Products.Product_ID = tbl_Processes.Product
GROUP BY tbl_Areas.Area_Detail, tbl_Areas.Product, tbl_Areas.Area_ID, tbl_Areas.Revision, tbl_Processes.Group, tbl_Processes.Serial_Number, [Group] & "-" & [Product_Family] & [tbl_Products].[Size] & "-" & [tbl_Processes].[Serial_Number] & "-" & [tbl_Areas].[Area_ID] & "-" & [tbl_Processes]![Revision], tbl_Processes.Process, tbl_Processes.Revision, tbl_Finished_Product_Families.Common_Name, tbl_Products.Size, tbl_Models.Model_Definition, tbl_ECN.Date_Published, tbl_ECN.Engineer, tbl_Processes.Sequential_Position

UNION SELECT DISTINCT tbl_Areas.Area_Detail, tbl_Areas.Product, tbl_Areas.Area_ID, tbl_Areas.Revision, "OP Book" AS Expr1, Null AS Expr2, "OP-" & [Product_Family] & [tbl_Products].[Size] & "-0000-" & [tbl_Areas].[Area_ID] AS [Document Name], Null AS Expr4, Null AS Expr3, tbl_Finished_Product_Families.Common_Name, tbl_Products.Size, tbl_Models.Model_Definition, Null AS Expr5, Null AS Expr6, Null AS Expr7, 100 AS Expr8
FROM (tbl_Models INNER JOIN (tbl_Finished_Product_Families INNER JOIN tbl_Products ON tbl_Finished_Product_Families.Finished_Product_Family = tbl_Products.Product_Family) ON tbl_Models.Model = tbl_Products.Model) INNER JOIN (tbl_Areas INNER JOIN tbl_Processes ON tbl_Areas.Area_ID = tbl_Processes.Area) ON tbl_Products.Product_ID = tbl_Processes.Product;

2 个答案:

答案 0 :(得分:1)

当您在备注字段上执行聚合函数时,您可能会得到一些奇怪的结果。此页面解释了问题http://allenbrowne.com/ser-63.html

答案 1 :(得分:0)

在遵循Don George的建议后,我发现如果我切换tbl_Processes.Process to First(tbl_Processes.Process) AS Process,它会正确显示数据并且不会丢失任何内容。我确实需要调整几个引用这个的查询,但现在一切正常。