このエントリーをはてなブックマークに追加

2つのテーブルのデータを別の1つのテーブルにまとめる。(Access)

こちらは、「日付」、「店ID」、「期首在庫」フィールドからなる、「T_期首在庫」テーブルです。今、「店ID」フィールドには、「1」、「2」の2つの店IDが入力されています。

テーブル

次にこちらは、「店ID」、「仕入金額」フィールドからなる、「Q_仕入」クエリです。これは、「T_仕入」テーブルから1か月間の仕入金額を抽出して、それらを「店ID」ごとに合計したものです。「店ID」フィールドには、「1」、「2」、「4」、「5」の4つの店IDが入力されています。

クエリ

この「T_期首在庫」テーブルと、「Q_仕入」クエリを別の新たな「T_集計」テーブルにまとめていきます。「T_集計」テーブルでは、「店ID」ごとの「期首在庫」と「仕入金額」を同じレコードに格納していきます。まずは、「T_集計」テーブルを作ります。

テーブルデザイン

作成の流れ

  1. 「T_期首在庫」のデータを「T_集計」に入れる。
  2. 「Q_仕入」の「店ID」データを「T_集計」に追加する。
  3. 「Q_仕入」の「仕入金額」データを「T_集計」に追加する。
  4. 「Q_仕入」の「仕入金額」を「T_集計」に追加する。の補足

「T_期首在庫」のデータを「T_集計」に入れる。

最初に、「T_期首在庫」テーブルの「日付」、「店ID」、「期首在庫」フィールドのデータを入れますが、これはふつうに、「T_集計」を追加先とした、「T_期首在庫」の「追加クエリ」でデータを追加するようにします。

テーブル

「Q_仕入」の「店ID」データを「T_集計」に追加する。

こちらは、少し工夫をして、「T_集計」に追加していきます。

  1. 「日付」フィールドには、「Q_仕入」に「日付」フィールドがないので、ここでは何もしません。
  2. 「店ID」フィールドには、「Q_仕入」にあって、「T_期首在庫」にはないデータのみを追加します。つまり、「Q_仕入」と「T_期首在庫」の間で、「店ID」フィールドの不一致クエリを作成して、それを「T_集計」に追加します。
  3. 2つのテーブルを比較して、レコードの差分を取得する。のページで、不一致クエリを作成しています。
  4. 不一致クエリをデザインビューで開きます。
  5. 「クエリツール」の「デザイン」タブから、クエリの種類を「選択クエリ」から「追加クエリ」に変更します。クエリデザイン
  6. 「追加先」に「T_集計」を指定して、「OK」を押します。追加クエリ
  7. デザイングリッドの「T_期首在庫」の「店ID」フィールドは、追加しないので、「レコードの追加」欄の「店ID」は、消しておきます。クエリデザイン
  8. 追加クエリを実行すると、「Q_仕入」だけにある「店ID」だけを「T_集計」テーブルに追加できます。テーブル

「Q_仕入」の「仕入金額」データを「T_集計」に追加する。

仕入金額を「T_集計」テーブルに追加する場合は、すでにある「T_集計」のレコードにデータを入れることになるにで、「追加クエリ」ではなく、「更新クエリ」でデータを入れるようにします。

  1. 「Q_仕入」クエリと同じ内容のテーブル「T_siire」を作成する「テーブル作成クエリ」「Q_siire2」を作ります。
  2. 新たにクエリをつくります。クエリフィールドに「T_集計」テーブルと「T_siire」テーブルを追加して、それぞれの「店ID」フィールドを結合させます。
  3. デザイングリッドに「T_集計」の「仕入金額」フィールドを追加します。
  4. 「クエリツール」「デザイン」タブの「クエリの種類」を「選択」から「更新」に変更します。
  5. デザイングリッドの「レコードの更新」欄に[T_siire]![仕入金額]と入力します。(テーブル名とフィールド名は入力支援機能が使えます)
  6. クエリを名前を付けて保存します。(ここでのクエリ名は「Q_siire3」)

クエリデザイン
これで、「T_siire」の「仕入金額」を「T_集計」の「仕入金額」に入れる(データの更新)ことができます。

テーブル

「Q_仕入」の「仕入金額」を「T_集計」に追加する。の補足

「Q_仕入」の「仕入金額」を「T_集計」に入れるために、更新クエリを使いますが、「Q_仕入」をそのまま使って更新クエリを実行しようとすると、「更新可能なクエリであることが必要です。」というエラーメッセージが出て、更新することができません。これは、「Q_仕入」クエリがもとのテーブル「T_仕入」の仕入金額を合計した集計クエリであるからです。

エラーメッセージ

ですので、更新を可能にするために、「Q_仕入」と同じ内容の新たなテーブル「T_siire」を作ってから更新クエリを実行するようにしています。

このエントリーをはてなブックマークに追加

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントフィード

トラックバックURL : http://gyoumuka.work/wp-trackback.php?p=2376

PAGE TOPへ戻る