2017-02-14 42 views
0

我有一個數據庫,其中有一個聯合查詢正在爲報表提供一些數據。這一直工作良好的一段時間,我不得不將表格中的字段從短文本切換到長文本與豐富的文本,以支持額外的字體選項。在這樣做的時候,當我運行查詢時,有問題的字段會返回有趣的字符。該表稱爲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; 
+1

您可以嘗試分別查看聯合的每個片段,以查看奇數字符來自哪裏 - 這聽起來像它可能不僅僅是一個查詢問題。 –

+0

我知道如果我建立一個查詢來查看只是該字段,它會正確顯示。我甚至把它拿走了,它會正確顯示。出於某種原因,當我運行整個查詢時,它只有這個字段有問題。我製作了數據庫的測試副本,如果將字段切換回短文本,它將正常運行。問題是數據可能需要超過255個字符。 – vxd128

回答

0

下唐喬治的建議後,我發現,如果我換tbl_Processes.Process to First(tbl_Processes.Process) AS Process它正確顯示的數據,並沒有失去任何東西。我確實需要調整引用這個的一些查詢,但現在一切正常。

1

當您在備註字段上執行聚合函數時,您可能會得到一些奇怪的結果。本頁解釋了這些問題http://allenbrowne.com/ser-63.html

+1

感謝您的鏈接,這明確解釋了爲什麼發生這種情況,以及爲什麼將其切換爲首先解決問題。 – vxd128