• 締切済み

表と表の結合について

toshi_2000の回答

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

商品名が変更になった場合、正規化した場合は、商品テーブルの1レコードのみを変更すれば済みます。 正規化しなかった場合、元表にある複数のレコード全ての商品名を変更する必要があります。 こんな説明で分かりますか?

ShiftTail
質問者

お礼

回答ありがとうございます。 確かに正規化する理由としては、教えて頂いた内容で問題ないと思いました。 ただ、結合する列の説明がやはりできないので、考えて見ます。

関連するQ&A

  • アクセスのクエリの作り方

    初心者なので教えてくださいませんか? アクセスでテーブルを複数作成して、それをクエリで結合するときに、どのテーブルからどのフィールドを選べばいいのかわかりません。 例えば・・・ 売上テーブル:NO 売上日 商品コード 数量 商品テーブル:商品コード 商品名 単価 この二つのテーブルを結合するクエリを作ります。 NO 売上日 商品コード 商品名 単価 数量 上記のフィールドを使用したいのですが、このとき、商品コードをどちらのテーブルのを使ったらよいのでしょう。 その判断は何からしたらよいのでしょうか。 うまく説明できているかわかりませんが、よろしくお願いします。

  • Accessのテーブル結合方法

    Access2000で商品の仕入と売上の受払を一覧表にしようとしているのですがうまくいきません。 テーブルは商品仕入と、売上の2つがあって 仕入には荷受した日、商品コード、数量、仕入金額と値入金額、仕入先があります。 売上には売上した日、商品コード、レジ番号、利用者、数量、売上金額となっています。 この2つを1枚の表にして、商品コード別に在庫が動いた日、適用(売上ならレジ番号、利用者を表記して、仕入なら仕入先を明記)、仕入数量、仕入金額、値入金額、売上数量、売上金額となるようにしたいのですが、うまくいきません。 ユニオンクエリを使ったり、選択クエリで単純にならべたりしたのですが、私の知識ではどうにもならなくなりました。 よろしくご指導のほどお願いします。

  • Accessで、在庫表を作りたいのですが・・・

    いつも大変お世話になっております。m(_ _)m また質問させてください。 Accessで、在庫表を作っています。 「入庫情報_テーブル」と「出庫情報_テーブル」があり、それぞれのテーブルは、製品名(型番)と数量の情報を持っています。 入庫情報の数量はプラスして、出庫情報の数量はマイナスして、差引きの在庫表を作りたいのですが・・・ 入庫情報に入っている製品名のすべてを表示して、出庫情報の数量をマイナスする・・・というのは、「結合のプロパティ」で、入庫情報の全レコードと・・・というオプションを選べば可能です。 またその逆も可能なわけですが、両方を全部表示したい時はどうすればいいのでしょうか? つまり、入庫情報に入力されている商品で出庫情報にのっていないものと、出庫情報に入力されている商品で入庫情報にのっていないものがあるわけです。 在庫表では、それぞれのテーブルに存在するすべての製品名を載せ、型番が合致した場合は、入庫数量-出庫数量で在庫を出したいのです。 出庫情報にあって、入庫情報にないものというのは、つまり、在庫数がマイナスになるということです。 両方を同時に満たすには、どのようにすればいいのでしょうか? 質問の説明文が不足していたら指摘してください。 よろしくお願いします。

  • 行をまとめる計算式

    エクセルで以下のような表があるとします。 顧客 商品名 販売数量 コスト 売単価 売上 ああ かかか 10 200 300 3000 ああ ききき 10 300 400 4000 いい かかか 10 200 300 3000 いい かかか 10 200 300 3000 いい ききき 10 300 400 4000 うう かかか 10 200 300 3000 うう ききき 10 300 400 4000 うう ききき 10 300 400 4000 うう ききき 10 300 400 4000 この表を以下のようにするにはどうしたらいいでしょうか? 顧客 商品名 販売数量 コスト 売単価 売上 ああ かかか 10 200 300 3000 ああ ききき 10 300 400 4000 いい かかか 20 200 600 6000 いい ききき 10 300 400 4000 うう かかか 10 200 300 3000 うう ききき 30 300 400 12000 つまり、顧客と商品名が同一の行は、販売数量と売上を合計して一行にまとめてしまいたいと考えています。 上記の表からは分からないようになっていますが、売単価は基本的に顧客ごとに違います。コストは同じ顧客の中でも違うことがあり、顧客と商品名が同一の行があった場合、その平均値を出したいと考えています。 一番目の表を元に別シートに二番目の表を作成したいと考えています。 二番目の表のそれぞれの列にどのような計算式を入れればいいでしょうか? ご教示お願いいたします。

  • エクセルで作成した「月間売上高表」から「顧客別売上高表」を作成する方法

    「月間売上高表」のA列:顧客名、B列:代金、C列:商品名を入力しました。  この表から「顧客別 月間売上高表」を作成する方法を教えてください。

  • Accessで複数テーブルのJoin

    次のようなテーブル(T1~T4)とクエリ(Q1~Q2)があります。 クエリの表で囲っているものはAccessのQBEを表しています。 その下はAccessが自動生成したSQLです。 Accessがある場合はいいのですが、ない場合、いきなりSQLを 書かないといけないわけですが、どのような順番に並べていって いいのか整理がつきません。 4つ以上になるとさっぱりです。 何かヒントをいただけませんでしょうか? T1:売上表[売上No、日付、顧客CD] T2:顧客表[顧客CD、顧客名] T3:売上明細[ID、売上No、連番、商品CD、数量] T4:商品表[商品CD、商品名、単価] Q1: ┌────────────────┐ │日付 │ 商品名│単価 │数量 │ ├────────────────│ │売上表│商品表│商品表│売上明細│ └────────────────┘ SELECT 売上表.日付, 商品表.商品名, 商品表.単価, 売上明細.数量 FROM 商品表 INNER JOIN (売上表 INNER JOIN 売上明細 ON 売上表.売上No = 売上明細.売上No) ON 商品表.商品CD = 売上明細.商品CD; Q2: ┌────────────────────┐ │日付 │ 顧客名│商品名│単価 │数量 │ ├────────────────────│ │売上表│顧客表│商品表│商品表│売上明細│ └────────────────────┘ SELECT 売上表.日付, 顧客表.顧客名, 商品表.商品名, 商品表.単価, 売上明細.数量 FROM (商品表 INNER JOIN (売上表 INNER JOIN 売上明細 ON 売上表.売上No = 売上明細.売上No) ON 商品表.商品CD = 売上明細.商品CD) INNER JOIN 顧客表 ON 売上表.顧客CD = 顧客表.顧客CD;

  • ACCESS 顧客データ 購入履歴検索について

    ACCESSで顧客データを管理しています。 ●月●日以降 ○○製品の購入履歴があった人が、 その日付以降に再来店しているか、再来店日、購入製品をだしたいのですが、 良い抽出方法ありますか? テーブルには、↓ があります。 顧客コード 顧客名 売上日付 取引番号 商品コード 商品名 売上数量 店舗名  分かる方いらしたら教えて下さい! 宜しくお願いします。

  • アクセスのリレーションシップ

    アクセス2007を使用しています。 顧客表 (顧客コード 顧客名) 注文表 (顧客コード 商品名 数) と言う表があります。 二つの表を 1.リレーションシップをはる 2.結合する(クエリ:売上表) 上記作業を行い売上表を作成しました。 売上表作成の流れは、 「当然顧客コードで2つの表が結合され、両方の表に存在する値の行が表示される」 と思っております。 今回の結合(等結合)表の作り方は以下の流れだと思っております。 1. 顧客表、注文表の直積を出す。 2. 顧客表・注文表の顧客コードで一致する行を抽出する。 ここで質問なのですが、 一度、リレーションシップを作成しないで、 顧客表と、注文表を結合しようとし、クエリの売上表を作成しようとしました。 すると、直積結果までしか出ませんでした。 (SQLウィザードを確認しましたが、FROM句までのSQLしかありませんでした。Where,Innnerなし) これはつまり、リレーションシップを張らなければ、等結合が行われないということで 間違いないでしょうか?(Where、Inner JOINでの条件が入らない)

  • 表の結合の仕方

    お世話になります。 このたび今後の業務に必要な為、SQLを勉強することになりました。そこでこのような問題が出たのですがどうも理解できません。 【商品マスタ】 商品コード 商品名  単価 0001    ボール  100 0002    バット  200 0003    グローブ 300 【仕入先マスタ】 仕入先コード 仕入先 001      A 002      B 003      C 【トラン】 購入番号  商品コード 仕入先コード 数量 1      0001    001      1 2      0001    002      2 3      0001    003      3 4      0001    001      4 5      0001    002      5 6      0002    003      6 7      0002    001      7 8      0002    002      8 9      0003    003      9 10      0003    001      10 11      0004    004      20 上記の商品、仕入先、トランのテーブルから以下のように出力をするものです。 商品コード、商品名、仕入先コード、仕入先名、数量、単価、金額 0001 ボール  001 A    5 100  500 0001 ボール  002 B    7 100  700 0001 ボール  003 C    3 100  300 0002 バット  001 A    7 200  1400 0002 バット  002 B    8 200  1600 0002 バット  003 C    6 200  1200 0003 グローブ 001 A    10 300  3000 0003 グローブ 003 C    9 300  2700 0004 (null)  004 (null) 20 (null) (null) ネットを見てもいまいちピンと来ず行き詰っています。ヒント等ありましたらよろしくお願い致します。

  • クエリー列選択の基準

    顧客表 (顧客コード 顧客名) 注文表 (顧客コード 商品名 数) の表から 売り上げクエリー(ビュー)を作成しようと考えています。 (注文表に、ON UPDATE CASCADE設定済み) 1.表示クエリーを作成する場合  {顧客表.顧客コード , 顧客名 , 商品名 , 数}  or  {注文表.顧客コード , 顧客名 , 商品名 , 数} どちらの列で作成しても問題ないと思います。 2.更新クエリを作成しようとする場合  (1).{顧客表.顧客コード , 顧客名 , 商品名 , 数}  or  (2).{注文表.顧客コード , 顧客名 , 商品名 , 数}    ・表作成後、顧客コードを更新すると考えた場合  (1)の場合は、顧客コードのマスター列を更新するため、子表:注文表の列も更新されるためエラーは起きないと考えています。  (2)の場合は、注文表の顧客コードの更新になるため、更新エラーになると考えています。 質問:検索クエリー(ビュー)を作成する場合は、特に列の選択は気にしなくてもいいと思っているのですが、 更新クエリーを作成する場合は、(1)(2)のようなケースがあると思っています。 更新クエリーの列の選択は、更新エラー等まで考えて列選択をしたほうがいいのでしょうか。 (親表の列を、使用するという考えでは雑でしょうか。)