• 締切済み

accessのテーブル二つで一つのテーブルを

ACCESS97を使用しています。 テーブル1 製品番号  出荷日      出荷数  100     2012/12/1      3  101     2012/12/13      2  105      2012/12/1       5  108      2012/12/5       6 テーブル2 製品番号 売上日 売上数 売上金額 100     2012/12/1   3   3,000 101     2012/12/13   4   5,000 111     2012/12/10   10   500 二つのテーブルがあり、どちらもfrom to の期間指定で大きなテーブルから取り出しています。テーブル1のみにあるデータ、テーブル2にあるデータどちらにもあります。 これを一つのテーブルにまとめて下記のようにしたいのですが、できますか。 製品番号 出荷日   出荷数    売上日     売上数   売上金額 100   2012/12/1     3         2012/12/1      3     3,000 101   2012/12/13     2           2012/12/13       4   5,000 105   2012/12/1      5          null      null     null 108   2012/12/5     6          null      null      null 111     null       null       2012/12/10      10      500 このようなテーブルにしたいのですが、できますか。  access使用歴は長いのですが、簡単なクエリとかしかできなくてなさけなく思っています。これを機に少し勉強したいと思ってますが、取り掛かりからわかりません。よろしくお願いいたします。

みんなの回答

  • yosifuji20
  • ベストアンサー率43% (2675/6115)
回答No.1

一つのクエリーでは難しそうですが、2回に分ければ可能です。 考え方だけですが、 (1)テーブル1をメインにしてテーブル2を製品番号をキーにして連結するクエリー、ここでテーブル2に該当データが無い項目はnullにして出力 (2)テーブル2をメインにしてテーブル1を製品番号をキーにして連結するクエリー、ここでテーブル1に該当データが無い項目はnullにして出力 この二つのクエリーから別々に例えばテーブルXに答えを出力すれば、出力側テーブルXではお望みの結果が出来上がります。 キーとなる製品番号がテーブル1にないと(1)のクエリーでは自分がブランクのデータは出てこないですね。 (2)のクエリーも同様です。 したがってお互いに自分がある場合のクエリーを使って相手のブランクはNULLで出力すればできると言うことです。 (最近使っていないので記憶間違いがあったらご容赦ください)

関連するQ&A

  • ACCESSの空白をカウントする

    こんにちはAccessについて教えて下さい。 素人です宜しくおねがいします。 日付のデータが入るテーブルがあります。 この日付は物品の出荷の日にちと入荷の日にちを示しています。 入荷したら入荷日に日付を入れ、出荷したら出荷日に日付を 入れます。 在庫管理のため入荷日が入っているけれど出荷日を入力していない空白せるの数をVBAかクエリかWhere条件式でカウントしたいです。 調べたところクエリの集計のカウントでは空白セルをのぞいた数を数えてしまうようです。 ですから、Is Nullでも””””でも集計できなかったです。 どうすればよろしいでしょうかどうぞ宜しくお願いします。

  • Accessのテーブル結合方法

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

  • Access クエリ 抽出・演算

    Access クエリについてご質問させていただきます。 テーブルのデータを特定の条件に一致するレコードだけ抽出し、演算を実施したいです。 (1):CSVデータをテーブルに取り込みます。 テーブルは左から『取引No』『部門コード』『部門名』『発注入力日』『担当者名』『発注日』『伝票No』『伝票行No』『商品コード』『商品名』『入数』『発注数(入力数)』『発注数量※1』『発注金額※2』『出荷日』『出荷数量※3』『出荷金額※4』となっております。 ※1:発注数量は入数×発注数が計算済みです。 ※2:発注金額は発注数量×単価で小数点以下切り捨てで計算済みです。 ※3:出荷数量は入数×出荷数が計算済みです。 ※4:出荷金額は出荷数量×単価で小数点以下切り捨てで計算済みです。 (2):クエリを使用して、商品名が『単3乾電池』の出荷数量を10で割り、10で割り切れるレコードを求めたいです。 (3):(2)の演算結果(10で割った後の整数)を合算して合計値をクエリの演算結果として表示したいです。 ※(2)の抽出条件でのクエリをすでに作成済みで、合計したクエリを作成したいです。 どのようにすればよろしいでしょうか?

  • Accessのクエリーで、*が入っているデータを抜出す方法って?

    助けてください! Accessのクエリーで、*が入っているデータを抜き出すのってどうやるんですか? クエリーの元になるテーブルは1つ、非常に単純なテーブルです。  ●フィールド1=「*」もしくはNullもしくは「英数字」  ●フィールド2=製品番号  ●フィールド3=メーカ番号 テーブルには上記3つのフィールドしかありません。 このテーブルの、「フィールド1に『*』が入っているデータを抜出したいのです。(抜出すのはフィールド1~3全て) 単純に選択クエリーで「抽出条件」に「“*“」と入れると、「フィールド1に英数字が入っている」行まで選択しちゃうんです。そりゃそうだよなーとは思うのですが、じゃあ、どうやったら英数字の入っている行は無視して、純粋に「*」だけの行を抜出せるのかわかりません。 誰かー!助けて―!

  • Accessで条件設定用のテーブルを作成する方法

    Accessの条件設定用のテーブルを作成してクエリで結合する方法について質問があります テーブル名「名簿」(データ数99) ID 名前 役職 1 名前1 部長 2 名前2 次長 3 名前3 NULL 4 名前4 NULL 5 名前5 NULL ・・・ 99 名前99 NULL ※NULLは空欄で役職無し 上記名簿に対して 部長と次長は目標値0 特定の人物は目標値2 それ以外は目標値4 と設定したいのです。 下記の「目標値」のような 条件設定用のテーブルを作成し、 クエリで結合することは可能でしょうか? テーブル名「目標値」(データ数5) 名前 役職 目標値 * 部長 0 * 次長 0 名前3 * 2 名前5 * 2 * * 4 ※「*」はどの値でも関係なくヒットして欲しい クエリの結果としてほしいのは下記のような結果です クエリ(データ数99) ID 名前 役職 目標値 1 名前1 部長 0 2 名前2 次長 0 3 名前3 NULL 2 4 名前4 NULL 4 5 名前5 NULL 2 ・・・ 99 名前99 NULL 4 テーブル「名簿」の内容は変更できないものとします。 同じ結果が得られるのであればテーブル「目標値」は変更可能です。

  • ACCESS97で、テーブルリンクを使用すると結果がおかしくなります

    こんにちわ、ご教授よろしくお願いします。 win2000 Office97を使用しています。 ACCESS97でテーブルリンクでデータを抽出して、 クエリーを走らせた場合と、 リンクを一度テーブルに落としてから、 クエリーを走らせた場合とでデータ件数がちがってきてしまいます。 正しい結果は一度テーブルに落としてから、クエリーを走らせた場合が正しい結果が出ました。 97でテーブルリンクを使用する際に なにか注意しなければならないことがあるのでしょうか? 一々、テーブルに落としてからクエリーを走らすにはかなりの数があるので、 できれば、テーブルリンクを使用してクエリーを走らせたいのです。 わかりずらい説明ですが、ぜひとも ご教授お願いします!><

  • ACCESS まとめて表示するクエリについて

    商品の売上データ・仕入データが個別にあります。 商品には大中小の分類があり、各分類は2ケタのコードです。つまり、 (1) 大分類/中分類/小分類/仕入金額 01/02/05/1,000 という構成のデータと (2) 大分類/中分類/小分類/売上金額 01/02/05/1,250 という構成のデータとがあるわけです。この2つをExcelデータで持ってて、データが大量なのでAccessに取り込み、最終的には 大分類/中分類/小分類/仕入金額/売上金額 01/02/05/1,000/1,250 というように、仕入金額と売上金額を一纏めにして表示したいのです。 ここで、上記(1)を仕入テーブル、(2)を売上テーブルとし、 SELECT 大分類,中分類,小分類,仕入金額,売上金額 FROM 仕入,売上 WHERE 仕入.大分類=売上.大分類 AND 仕入.中分類=売上.中分類 AND 仕入.小分類=売上.小分類 とクエリを作ってみたら、各テーブルのデータが数千件になっただけで、物凄くクエリの動きが遅くなりました。 大中小分類の一致を、WHEREでなくINNER JOINで記述してみても、遅くなります。 最初のテーブル作成からして、間違ってるでしょうか?いい案はないでしょうか?

  • ACCESS クエリの抽出のやり方

    初投稿になります。よろしくお願いします。 無礼な事、不明瞭な事がありましたらご指導宜しくお願いします。 ACCESS2007 クエリで困っています。 テーブル_出荷 【コード{主}】【出荷先(1)】【出荷先(2)】 テーブル_明細 【コード】【種類】【数(1)】【数(2)】と構成されたテーブルがあります。 フィールド【コード】はリレーションシップで繋ぎました。 クエリで 【コード(出荷)】【種類{抽出条件:果物}】【数(1)】【数(2)】【種類{抽:野菜}】【数(1)】【数(2)】 とテーブル_出荷・テーブル_明細・テーブル_明細_1で選択クエリをつくりました。 クエリを実行すると無事表示されたのですが、後日データを更新したら 表示されなくなりました。 おそらく【コード(出荷)】に対して【種類{抽:野菜}】が存在しないレコードが出てきたからだと思います。 存在しない場合は「空白」か「0」で表示したいのですが、何か方法がないでしょうか?

  • アクセス97のテーブルを直接いじれなくしたい

    アクセス97です。 NTにあるDBを複数人で共有して使用しております。 クライアントはWin-95とWin-2000です。 フォームでデータの読み書きはできるのですが、 ときどき、テーブルを直接覗いてデータ変更したり、削除する人が います。 更新日付が変わらなかったり、データが一部壊れたりして困っています。 テーブルのデータやクエリーやモジュールを直接いじれなくする方法は ないでしょうか? 現在、MDEファイルにしているので、フォームはいじれません。 表示オプションでテーブルは隠しモジュールにしています。 でも、知っている人は簡単に解除できますよね。 困った。 ワークグループをつくり、アクセス権を設定するのはやりたくありません。 以前、管理に多大の勢力を使った経験があるので。 何か簡単にテーブルやクエリーをいじれなくする方法はないでしょうか? よろしくお願い致します。

  • アクセスでテーブル内容を書き換えたい

    アクセスで商品管理を行っていますが、商品マスターのテーブルに商品毎のIDを付けて出荷データなどを入力していたのですが、その後商品が増えマスターの空き番号を使うと商品群がバラバラになってしまいます。 そこでIDを付け直したいのですが、番号を変えると当然過去の出荷データの整合性も取れなくなってしまいます。 うまく変更する方法があれば教えてください。 判りづらい質問で申し訳有りません。

専門家に質問してみよう