0

わかりましたので、重複する ID が存在する場合にフィールドに null 値を表示するクエリを実行しようとしています。2 つのテーブル、親子関係があります。親テーブルには、1 つから複数の子レコードを含めることができます。私のシナリオでは、多くの検査を行うことができる燃料タンクがあります。Tank は親テーブルで、Tank_Inspections は子テーブルです。タンク テーブルから取得してタンク検査記録と結合している容量データ フィールドがあり、そのタンクに複数の検査が存在する場合は 2 回表示されます。これは問題ありませんが、容量を二重にカウントしたくなく、一度だけ表示したいと考えています。親テーブルに複数のレコードが存在する場合のスクリーンショットの画像へのリンクを貼り付けました。強調表示されたセルは空白にする必要があります。ご覧のように、TankID = 65 には異なるタイプの 2 つの検査があります。Tank テーブルから容量フィールドを取得しているため、2 回挿入されています。クエリを作成して、タンクに 2 つ以上の検査が存在する場合、容量を 1 回だけ表示し、他の容量データ要素を「空白」にする必要がありました。この場合、強調表示セルは空白にする必要があります。提案?

http://imgur.com/6bYE8wS

4

1 に答える 1

0

これは、分析関数の仕事のように思えます。Access はこれらをネイティブにサポートしていないため、row_number() 分析関数を実現するためのハックがあります。これはニーズを満たすように思えます。

MS Access で ROW_NUMBER / PARTITION BY を達成する

この自己結合を呼び出すクエリを作成し、テーブルの代わりにそれを使用します。各行の行番号を取得すると、次のようになります。

Tank ID  Inspection ID   Row
 59          6841         1
 60          6842         1
 65          7344         1
 65          6843         2

そして、容量式は[Inspection].[Capacity]次のように変わります。

IIf([Self Join].[Row] = 1, [Inspection].[Capacity], Null)
于 2015-11-04T04:09:09.760 に答える