• 締切済み

accessで二つの条件が一致するものを

accessで二つの条件が一致するものを アクセスで原材料管理を行っていて 以下の二つのテーブルがあります 日別使用原材料テーブル 日付 製品コード 材料コード 2/1 A A-1 2/1 A A-2 2/1 B A-1 2/2 C B-2 2/2 A A-1 2/3 D C-3 日別不足材料テーブル 日付 材料コード 不足材料 2/1 A-1 10 2/1 A-1 2 2/2 A-1 5 2/2 B-2 1 この二つのテーブルがありこの二つのテーブルを一つにまとめたいと思います 具体的には以下のテーブルを作りたいのです 日別製品別材料不足テーブル 日付 製品コード 材料コード 不足材料 2/1 A A-1 10 2/1 B A-1 2 2/2 A A-1 5 2/2 C B-2 1 日付毎に 足りない分だけの材料を製品毎に表示させたいのですが 日別の製品別に足りない材料を結合する方法がわからないので よろしくお願いいたします。

みんなの回答

  • layy
  • ベストアンサー率23% (292/1222)
回答No.7

製品と材料の関係を明確に。 1:1なのかどちらかが多なのか 気付かずにクエリ着手していたなら、ここだけかは非常に怪しい。他のテーブルも見直す。 下手すると 実作業の数値と管理の数値が違う可能性がある。 今回の仕組みを考えるのはそれから。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.6

難しいことは、言いませんが。質問の場合、 大雑把にいうと、何が足りないかと言えば、 最低限、出口、入り口だけで以下のような ものがないと、どんぶり勘定の工場になって しまいます。とくに、 日別使用原材料テーブル(工場内データ) 日別終業時工場内材料滞留量テーブル(工場内データ) がなければ、質問の場合、計算ができません。 少なくとも、 日別使用原材料テーブル(工場内データ) は必要です。 全材料テーブル(工場、倉庫データ) 材料名 材料コード 日別使用原材料テーブル(工場内データ) 日付 製品コード 材料コード 使用量 2/1  A     A-1   50 2/1  A     A-2   200 2/1  B     A-1   500 2/2  C     A-1   100 2/3  D     C-3   250 日別終業時工場内材料滞留量テーブル(工場内データ) 日付   材料コード   滞留量 2/1     A-1   120 2/1     A-2   100 2/2     A-1   30 2/3     C-3   90 倉庫内全材料初期量テーブル(棚卸後倉庫データ) 材料コード 初期量 日別倉庫入荷量テーブル(倉庫データ) 材料コード 入荷量 日別倉庫出荷量テーブル(倉庫データ) 日付   材料コード   出荷量 2/1     A-1   100 2/1     A-2   250 2/1     A-1   600 2/2     A-1   120 2/3     C-3   300 これは、製造過程での各工程で使用される 材料の情報が、材料倉庫(たとえば資材課) に伝わるシステムになっていない、という ことになります。 つまり、日別使用原材料テーブルは製造ラインの 情報、日別不足材料テーブルは倉庫の 情報。これらのテーブルが機能するためには、 製造過程の材料使用量がデータとして上がって こないと、話になりません。 工程での使用量がわかれば、あとは倉庫から 出荷した量と、使用量の残を計算すれば 設定した量に対する不足分が出てきます。 当然ながら、不良材料、損失(失敗など) も計算にいれます。 上記の最低限のテーブルがあれば、あとは 足し算と引き算だけです。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

全般に、あらっぽい質問の書き方だ。 この程度の質問(の中身)になると、この質問コーナーの課題のスケールを越えているのではないか。プロに金を払って相談することではないか。 >accessで二つの条件が一致するものを 単純に2つのテーブルのキーで結合した表を作りたいのか。 質問のテーブル名からしてそんなことをしても意味  がない構成ではないか。 何かそこの説明がもれているのでは。 ーー 2つのテーブルが例に出てきているが、単にデータを入力しただけのテーブルではないのでは。システムの中で、ある過程で出てきているものではないのか。そういうことを考える必要ないのか。 ーー 固定情報としてーー>使用原材料テーブルに似たもの 貴社はこういう標準・基準テーブルを持たず必要な部品を進行させて、それで処理しているのかな・。 なぜ日別が付くのかな。日ごとに変わらない事なのでは。 製品名 部品名 必要数量 A X n1 A Y n2 A Z n3 B X n4 B Z n5 B U n6 B S n7 C W n8 C S n9 C U n10 があって 部品には等級や、袋の全部は使わないとか、鉄板や布のようなものがあって、切り出しの如何で残量捕捉が難しいものも在るだろうが、モデル的にはこうだろう。。 ーーー 製造実績(?質問からすると製造計画か?) 製造する前に部品不足は掴まないといけないはず。最低在庫の意味か。 日付 製造製品 数量 3/1 A     20 3/1 C 10 3/2 B 10 3/2 C     5 があって ーーー 部品の費消と購入(補充)情報がある表(イメージ) ーー 基準日在庫 3月1日 3月2日 3月3日 n1 50 -10 +20 n2 20 -10 n3 30 -5 n4 40 -10 +30 n5 10 -5 費消数量=製造数x必要部品数量 で計算 実レコードとしては 製品ーー>必要部品探索ー>費消数量=製造数x必要部品数量 で費消数量=製造数x必要部品数量で計算 日付 費消.・購入 3/1 -10 3/1 -10 ・・ 3/2 +20 ・・ になるだろう。行増加対応性から。 ーー 後者のデータから前者の表に、プログラムで構成しなおし 在庫を計算し 不足部品だけを抜き出す ーー 質問の説明が中抜き(省略)で何処をどうしたい質問か良くわからない。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.4

暫定で 材料不足テーブルから製品コードを取得して表示 不足A-1 10 については製品Aにも製品Bにも影響しているので ダブっていても結果を出した方が良い、か確認。 2/1 A A-1 10 2/1 B A-1 10 2/1 A A-1 2 2/1 B A-1 2 2/2 A A-1 5 2/2 C B-2 1 を出して 2/1 A,B A-1 10 2/1 A,B A-1 2 2/2 A A-1 5 2/2 C B-2 1 にする。 稼動中システムの基幹テーブル構成、項目変えるのは大変な話なので、暫定策があるかできるか検討、有識者と相談。回答があるからと言っても独断ではいけない。

回答No.3

基本的なことを押さえたいのですが目的は、在庫管理ですよね ? 素材料と素材料を加工して作られる製品の関係をマスター化されることが必要です。 具体的には、材料コード、製品コード、構成数(一つの材料からいくつの製品ができるか)というテーブルです。 例えば A-1 という材料から AA-1 や AA-2 が作られる場合両方の製作数の合算された材料が必要になりますよね ? 先ほどのマスターには +----------------+--------------+-------+ |材料コード      |製品コード | 構成数 | +----------------+--------------+-------+ |A-1 |AA-1 | 10 |←材料から10の製品が取れる +----------------+--------------+-------+ |A-1 |AA-2 | 1 |←材料から一つしか製品が取れない +----------------+--------------+-------+ この様なマスターを作ります。 で在庫を管理するテーブルも必要ですね +----------------+--------------+ |材料コード       |在庫数       | +----------------+--------------+ |A-1 | 13.5 | +----------------+--------------+ ここでやっと使用予定のテーブルが出てきます。 +----------------+--------------+-------+-----------+------+ |材料コード      |製品コード | 製作数 | 必要素材数 |過不足 | +----------------+--------------+-------+-----------+------+ | | | | | | +----------------+--------------+-------+-----------+------+ 上記のような表に生産する製品コードと製作数、日付等を入力します。 その他の材料コード、必要素材数、過不足をプログラムで書き込んでいきます。 使用予定テーブルはそれらの値が入っていない物が未処理と考えられるのでプログラムの方は その判断で未処理の物だけ処理すればOK です。 その処理の際にも材料の在庫テーブルを更新すれば在庫の過不足も解るようになります。 製作予定テーブルで材料の欠品予定日が把握でき 材料の在庫テーブルで不足量の総量が把握できます。 できれば、発注テーブルとリンクできるのなら材料の方は、手配済量も把握することができるでしょう +----------------+--------------+-------+-----------+------+

  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

クエリに困っている?。 原材料テーブルをベースに作ろうとしていますか 不足材料テーブルをベースに作ろうとしていますか 不足材料テーブルからそれに見合う製品コードをとるとしても 不足材料テーブル2レコード目の対応が原材料テーブル1レコード目か3レコード目かあいまいです。 事例の結果の2レコード目がBはどういう意図でしょうか。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

これは出来ない相談だと思いますが? なぜなら 材料コードが A-1の場合、製品コードの A にも B にも 存在しています。 どちらの製品コードになるのか特定できる判断材料が有りません。 テーブル設計のやり直しを検討してください。

関連するQ&A

  • レコードの一致方法

    テーブルA(マスター) [コード]、[商品名]        ○○○、△△△ テーブルB [コード]、[商品名]       ○○○、△△△ テーブルC [コード]、[商品名]       ×××、△△△ 以上のように、3つのテーブルの不一致クエリーなどを 抽出する場合、テーブルAとB同士の場合は、一致しないのはコードを結合線で結べば、すぐに出てきますが、テーブルAとCの比較の場合は、コードを結合線で結んだところで、違うのでうまくできません。 商品名は△△△なので、コードが違っていても、商品名はあっているので、不一致ではなく、一致しているというように考えたいのです。 △△△についてのコードは×××、○○○というように2つ以上持っているような感じですれば、うまくいくとおもっているのですが、こういう場合はテーブルAにコードのフィールドを2つ作っておいて、結合線でつなぐときに切り替えてするしかないのでしょうか? テーブルA(マスター)で、このような、2つのコードを持っているとおもわれる商品はレコード100以上あって、それをそれぞれ選びながら入力していかないかとおもうと、大変な作業化とおもっているのですが、アドバイスあればお願いします。

  • Accessのクエリで2つのフィールドが同条件の場合に結合したい

    Accessのクエリで2つのフィールドが同条件の場合に結合したい 以下のようなテーブルが2つあって、その2つのフィールドが一致する場合につなげるクエリを作りたいと考えています。 【テーブル名:勤怠データ】 氏名│日付│出勤時刻 ────────────────── 鈴木│2/1│8:01 鈴木│2/2│8:02 鈴木│2/3│8:03 高橋│2/1│9:01 高橋│2/2│9:02 高橋│2/3│9:03 【テーブル名:シフト】 氏名│日付│シフト ────────────────── 鈴木│2/1│A 鈴木│2/2│B 鈴木│2/3│A 高橋│2/1│B 高橋│2/2│C 高橋│2/3│B 【クエリ:シフト勤怠データ】←作りたいもの 氏名│日付│シフト│出勤時刻 ────────────────── 鈴木│2/1│A│8:01 鈴木│2/2│B│8:02 鈴木│2/3│A│8:03 高橋│2/1│B│9:01 高橋│2/2│C│9:02 高橋│2/3│B│9:03 氏名と日付のフィールドが一致するときに結合させたいのですが、 デザイン画面でつなげればいいのかわかりません。 ご回答よろしくお願い致します。

  • accessの不一致抽出

    accessで2つのテーブルで一致しないものを抽出しようとしてますが、抽出された数が合いません。 テーブルは下記のように2つあります テーブルA AAA ABA CCC DDC DDC テーブルB AAA ABB CCC DDC DDD これで AとBのテーブルをつなぎAのみに存在するものを抽出するのに Aを元テーブルで対象テーブルをBにして、 BのほうにIs Nullを入力して、不一致分だけ抽出して新しいテーブルを作成してます。 同じようにその逆で、Bにのみ存在しているものを抽出してテーブルを作成しました。 最後に、同じようにAとBをリレーで繋ぎ、リレーのプロパティの「1」で、AとBで一致するものだけを抽出してテーブルを作成しました。 Aのみに存在(テーブルA') Bのみに存在(テーブルB') 両方に存在 (テーブルC) そこでテーブルC-テーブルA’の数と、テーブルC-テーブルB'の数を比較して、同じになると思ったんですが、数が異なってしまいました。 おそらく値の「DDC」の所の抽出が問題だと思い、 プロパティで「固有の値」を「はい」にしてみましたが変わりませんでした。 不一致で抜き出したいのは、「DDC」が、テーブルAには2つ、 テーブルBには1つ値があるので、テーブルB’に1つだけ不一致を抽出できればベストなんですが。 access初心者な為、根本的にやり方や考え方が間違っているかもしてませんし、状況説明も下手ですみません。 どなたかご教授いただければと思っております。

  • ACCESSで他のデータベースと不一致を探したい

    ACCESSで見積を作っています。 パソコンAの見積テーブルとパソコンBの見積テーブルを比較し、 パソコンBにパソコンAの見積データを移行させたいのですが。 比較対象は見積No1というコード。 Aでは1A、2A、3A… Bでは1B、2B、3B… となっており、 不一致クエリ、差分を追加すれば、 Bには、1B、2B、1A、3Bと、Aのデータもまとめられると思ったのです。 ただ、問題は、AとBは別のパソコン。 不一致クエリ、ネットワーク上のを探せない。 アドバイスお願い致します。

  • ACCESSのテーブル結合に関して

    初歩的な事で申し訳ありませんが、教えて下さい。 以下のように3つのテーブルが存在し、検索条件をBテーブルの仕入先コードが"AAA"と 指定した際に、 発注番号、発注日付、仕入先コード、仕入先名 という形でOUTPUTしようと考えています。 その場合、クエリではどのように結合すれば良いでしょうか。。。 Aテーブルの発注番号とBテーブルの発注番号、Bテーブルの仕入先コードとCテーブルの 仕入先名という結合の形では、条件の"AAA"が1件しかないにもかかわらず、複数件出力されて しまうかと思われます。 《テーブル内容》 Aテーブル 発注番号 発注日付 Bテーブル 発注番号 仕入先コード Cテーブル 仕入先コード 仕入先名 ※ Bテーブル、Cテーブルの仕入先コード"AAA"は、それぞれ1件ずつしかない。 教えて頂きたいと思います。

  • ACCESS テーブルを見比べて、一致したレコードを抽出したいです

    ACCESSで、以下のデータ抽出をしたいです。 別々のテーブルで、番号の一致したものだけ取り出したいです。 どのようにすればよいのでしょうか? よろしくお願いします。  Aテーブル     Bテーブル   ・001 ***     ・002 ***    ・002 ***     ・004 ***   ・003 ***     ・001 *** 求める答え   ・001 ***     ・002 *** 

  • Accessで…

    アクセス初心者です。 今、データベースを作っているのですが、テーブルに以下のようなデータがあります。 日付 社員コード1 氏名1 社員コード2 氏名2 12/1  1234      A    2345      B 12/3  2345      B のようにデータが入っているのですが、このデータを、 「社員コード」別に何回入っているかをカウントしたいのです。 どのようにするのがいいでしょうか? よろしくお願いします。

  • Accessの不一致クエリについて

    Accessの初心者です。 二つのテーブルのデータを比較したいのですが、それぞれ構成が違います。例えば”6523410”という数字が両方のテーブルにあるかどうかを調べたいとします。 テーブルA 523(契約コード),410(ID) テーブルB 6523(取引コード),41(地域コード) 頭の”6”と最後の”0”は共通の数字です。クエリで新たにフィールどを作り、”6523410”にするまではわかるのですが、2つのテーブルのリレーションシップはどのようにすればよいか、わかりません。 このような場合は、不一致クエリは使えないのでしょうか? 仕事で、明日中にデータを照合しなければいけないので困っています。 よろしくお願いします。

  • ACCESSクエリでの結合の仕方

    ACCESS 2003を使用しています。 テーブルA テーブルB テーブルC の3テーブルでクエリを作っています。結合的には・・・ テーブルAのフィールドX⇔テーブルCのフィールドX テーブルBのフィールドX⇔テーブルCのフィールドX です。 これで3テーブルに共通する一致データのみ抽出はできるのですが、 3テーブルに共通する一致データに加えて、テーブルAとテーブルBの不一致データ(テーブルCに対する)も一緒に抽出できるようにしたいのです。 2テーブルだけの結合であれば、結合プロパティを、 テーブルAのフィールドX⇒テーブルCのフィールドX のようにすることで実現できるのですが、3テーブルの結合の場合、どのようにすればよいでしょうか? テーブルAのフィールドX⇒テーブルCのフィールドX テーブルBのフィールドX⇒テーブルCのフィールドX のようにしてみましたが、「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。云々。。。」と警告エラーがでてしまいます。 どなたが、ご教授いただけると助かります。 ご面倒ですが、よろしくお願い致します。

  • アクセスの複雑な条件での結合について

    久々に質問させていただきたいのですが、 アクセスでテーブル同士を結合させたいのですが、 現在、複雑すぎてデザインビューで表示できないので、SQLで作ったのですが、処理が重くて困っています。 やりたい結合は新しいデータと古いデータを結合したいです。 しかし、一つの結合ではデータの一貫性がないところがあり、抽出もれがおおいので、以下の条件で抽出しています。 テーブルA(日付1、姓、名前、名前カナ、日付2、・・・) テーブルB(日付3、姓、名前、名前カナ、日付4・・・) 結合条件 日付1=日付3 AND (氏名の名前=名前 OR 名前カナ=名前カナ) AND (year(日付2)=year(日付4) AND month(日付2)=month(日付4)) データ上、女性が多く、また、紙のパンチのデータのため、氏名の漢字も違っている場合があるので、このような条件にしましたが、軽くできないでしょうか? 明らかにデータがよろしくないのは承知していますが、アドバイスお願いします。

専門家に質問してみよう