2017-02-14 4 views
0

私は、レポート用にいくつかのデータを取得しているユニオンクエリがあるデータベースを持っています。これはしばらくの間うまくいきました。追加のフォントオプションをサポートするために、表のフィールドを短いテキストからリッチテキストの長いテキストに切り替える必要がありました。その際、質問を実行すると問題のフィールドが面白い文字で戻ってきます。テーブルはtbl_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を切り替えた場合、それは正しくデータを表示し、何かを失うことはありませんでしたことがわかりました。私はこれを参照した2つのクエリを調整する必要がありましたが、今はすべて正常に動作しています。

1

メモフィールドで集計関数を実行すると、奇妙な結果が得られます。このページは問題を説明しますhttp://allenbrowne.com/ser-63.html

+1

リンクがありがとうございました。なぜそれが起こっていたのか、どうして最初に問題を修正したのですか? – vxd128

関連する問題