おはよう!
私はMS Access分割データベースを持っています(ms sqlサーバーを(まだ)使用していません)。これは、いくつかのテーブルを一時クエリ(想像上は「temp」と呼ばれます!)で結合しています。
SELECT table_CORE.[core-ID],
table_CORE.[PO],
table_CORE.[Part],
table_CORE.[Part Rev],
table_CORE.[Supplier Doc #],
table_CORE.[Sup Doc Rev],
table_DATES.[date-ID],
table_DATES.[iteration],
table_REJECTIONS.[rejection-ID],
table_REJECTIONS.[iteration],
table_REJECTIONS.[reason],
table_REJECTIONS.[details],
table_REJECTIONS.[timestamp]
FROM
(
(
table_CORE INNER JOIN [TEMP]
ON table_CORE.[core-ID] = TEMP.[date-ID]
)
INNER JOIN [table_DATES]
ON TEMP.[date-ID] = table_DATES.[date-ID]
AND TEMP.[iteration]=table_DATES.[iteration]
)
INNER JOIN table_REJECTIONS
ON TEMP.[date-ID] = table_REJECTIONS.[rejection-ID]
AND TEMP.[iteration]=table_REJECTIONS.[iteration]
WHERE table_CORE.[core-ID] Like '*'
最終的に、これは却下された文書のリストを表示します。これは問題ありませんが、各文書が複数の部分に適用されることを除けば問題ありません。
PO、Part、および Part Rev を結び付けて、これらの却下を 1 つのドキュメントにまとめることができます。問題は、通常、これを GROUP BY 句で行うことです...
...ただし、「詳細」フィールドはメモ データ型であり、GROUP BY 句を試すと、access によって 256 文字に切り捨てられます。
これを回避する方法はありますか?拒否表に結合する前にグループ句を試しましたが、同じ問題が発生します (同じ PO、部品番号、およびリビジョンが関連付けられた複数の拒否があるという点で) - 他の方法を調査しています。 、しかし、それに必要なSQLについて頭を悩ませることはできません!
どうもありがとう!
さらに詳細が必要な場合は、私に声をかけてください!
- -追加の詳細 - -
例:
ID PO Part Rev reason details
1 111 A1 A error some_details1
2 111 A1 A error some_details1
3 111 A1 A error some_details1
4 222 A1 A error some_details1
6 222 A1 A error some_details1
7 333 B1 A error some_details1
8 333 B1 A error some_details1
9 444 B1 A error some_details1
10 555 C1 A error some_details1
次のように変更する必要があります。
PO Part Rev reason details
111 A1 A error some_details1
222 A1 A error some_details1
333 B1 A error some_details1
444 B1 A error some_details1
555 C1 A error some_details1
結合機能がどのように機能するかについての注意:
現在のアイテムは CORE に保存され、 core-ID>>date-IDによって 1 対多の関係で日付に結び付けられます。次に、反復を使用してパーツの履歴の最新のイベントを取得します。
その最新のイベントは、core-ID>>rejeciton-ID AND date-iteration>>rejectioniterationを使用して拒否リストに追加され、現在アクティブな拒否が返されます。