• ベストアンサー

ACCESSについて

Accessで以下のように処理したいのですが、方法を教えてください。 下記のように2つのテーブル1、2があり、それぞれ一つずつの項目(A、B)があります。 テーブル1  テーブル2  項目A    項目B  001     002  002     004  005     006  006     007  008     008 これをクエリーを使って、 クエリー0  テーブル1.項目A  テーブル2.項目B     001     002        002               004     005     006        006               007     008        008 と表示させたいのですが、どうしたらいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

こういう結合をフル外部結合といいます ただしAccessはこの結合をサポートしていませんので 右外部結合したものと左外部結合したものを ユニオンクエリで重複無しで、たてに結合します SELECT テーブル1.項目A, テーブル2.項目B, nz(テーブル1.項目A, テーブル2.項目B) as A FROM テーブル1 LEFT JOIN テーブル2 ON テーブル1.項目A = テーブル2.項目B union SELECT テーブル1.項目A, テーブル2.項目B,nz(テーブル1.項目A, テーブル2.項目B) as A FROM テーブル1 right JOIN テーブル2 ON テーブル1.項目A = テーブル2.項目B order by A 3つ名のフィールドは並べ替えのために作ったものです 必要なければはずしてください 結果 項目A 項目B  A 001      001 002   002  002     004  004 005      005 006   006  006     007  007 008   008  008

その他の回答 (1)

  • kurodai2
  • ベストアンサー率38% (77/202)
回答No.1

1つのクエリーでは、無理ではないでしょうか。 また、欲しい結果の項目に並びの基準となる項目も設けないと お書きになっている 2つの項目ではこのように並びませんね。 (お互いに、歯抜けが存在するので) ・テーブル1とテーブル2をUNIONで結合させた情報をベースに  番号の全一覧を取得する  001  002  ・  ・  008 ・この全番号のクエリーに対して、左外部結合で  テーブル1、テーブル2を結合する。 番号 テーブル1.項目A  テーブル2.項目B 001    001 002    002        002 004              004 005    005 006    006        006 007              007 008    008        008 番号で、オーダー指定

関連するQ&A

  • 【Access2007】クエリを教えてください

    Access2007を使用しています。 以下のような3つのテーブルがあります。 テーブルA No    項目a 1     ○ 2     ○ 3     ○ 5     ○ テーブルB No    項目b 1     ○ 4     ○ 5     ○ テーブルC No    項目c 1     ○ 2     ○ 4     ○ 6     ○ これらの3つのテーブルから以下の結果を返すクエリはどうすればいいのでしょうか? No    項目A   項目B   項目C 1     ○     ○     ○ 2     ○            ○ 3     ○ 4            ○     ○ 5     ○     ○ 6                  ○

  • Accessのクエリーについて教えてください。

    Access2000を使用しています。 不慣れなので、どういう設定をしたらいいのか悩んでおります。こんなことできますか? 1.テーブルが2つ存在しており、クエリーで1つ目のテーブルから項目Aと項目B、2つ目のテーブルから項目Bの3つを表示しています。 (2つ目のテーブルにも項目Aはあります。) 2.表示されたデータの中で、項目Bともう1つの項目Bの値が異なっているものだけを表示したいと思うのですが、どのように設定したらいいのでしょうか?

  • ACCESSの結合

    よろしくお願いします。 ACCESS2000で、AテーブルのA'フィールドとBテーブルのB’フィールドを結合させ、同一でないものを表示させる(クエリーで)方法を教えてください。 よろしく、お願いいたします。

  • Accessのエラー (いくつかあります・・・)

    アクセスでデータを入力したのですが、なぜか下記のエラーがでます… *作成したアクセスデータ* テーブル 項目AのCDと項目A、項目BのCDと項目B、項目CのCDと項目C、項目A~CのCDとその他繰り返し入力しないデータ の合計4つのテーブル それらすべてをリレーションでつないでます クエリ 全項目入りのテーブルを元に作ったもののみ フォーム クエリを元にウィザードを使って作成 *エラー* (1)クエリを作った時に、1つでもCDが入力されてないフィールドがあるとその行全体が表示されなくなる  (CDを入力したら表示されますし、テーブルではCDが入ってなくても全て表示されてます) (2)フォームで新たにデータを入力しようとしても一切入力できないし、変更もできない時がある (使用可能等の項目は一切触っていません) (3)フォームでCDが入ってる箇所を未入力にしたままでは保存できずに、「CDと値が一致しません」?のようなエラーメッセージがでる (すみません、エラーメッセージはうろ覚えです…) (4)なぜか昇順で番号を並べ替えていたのに、フォームでデータを追加したら、昇順が反映されずに「1,11,2…」のようにフォームのみ表示される (テーブル・クエリは反映されています) このエラーの原因がわかる方ぜひ教えてください!! よろしくお願いします。

  • ACCESS2003単純計算方法

    ACCESSの質問お願いいたします。 ACCESS初心者です。 テーブルにA、B、C、Dの項目を作成し テーブルDにA-BやB-Cなどの計算を実行して Dのテーブルに代入する方法を教えてください。 クエリを使う課と思いますが、記述式は テーブル名でしょうか? よろしくお願いします。

  • ACCESSで質問です。

    ACCESSで質問です。 テーブルA(複数企業)とテーブルB(Aの企業に対する対応状況)があります。 選択クエリにてAとBの2つのテーブルを電話番号でリレーションをもたせ、その企業の対応状況を検索し、結果をフォームに表示できるものを作りました。 しかし、企業(テーブルA)に対して複数の対応状況(テーブルB)があるため、フォームでBの対応状況分と同じ枚数のAレコードが表示されてしまいます。 クエリのプロパティで「固有のレコード」を「はい」にしても表示されてしまいます。 イメージでは、AテーブルとBテーブルの項目どれでも検索ができ、初めに検索結果をフォーム1で企業データを表示させ、コマンドボタンをクリックするとフォーム2で、その企業の対応状況が表示されるようにしたいのです。 現在検索は出来ていますが、フォーム1で同じ企業データレコードが複数表示されないようにしたいのです。 どのようにしたら出来ますでしょうか?アドバイスお願いします。 ・使用バージョンはACCESS2000です。 ・Aテーブルの企業データは重複なしです。 ・Aテーブルの主キーは電話番号です。 ・検索条件はA・Bの項目合わせて10項目で、全てIIFを使用して検索しています。 ACCESSを始めたばかりの初心者です。質問も初心者レベルですが、よろしくお願いします。

  • Access2002のピボットテーブルにて

    Access2002にて販売管理のシステムを構築しています。 売上高と売上件数を求めるクエリを作成し それぞれピボットテーブルにて下記の様に表示させております。 [売上高クエリ:(表示)ピボットテーブル]    A店  B店  C店 1月 1500  1800  0 2月 2300  1500  2700 3月 1200  600   1300 [売上件数クエリ:(表示)ピボットテーブル]    A店  B店  C店 1月  10   8   0 2月  18   6   22 3月  10   4   10 例えば、A店の1月度の売上平均単価を求める場合は 1500÷10=150円と出てきますが これをピボットテーブルにて自動的に処理させることは可能でしょうか? できれば、同じピボットテーブルの形式で 全ての月・店舗の平均単価が一発表示させられると嬉しいのですが。 ご存じのかた教えて下さい。

  • ACCESSでお助けください。

    ACCESSで次のことを行いたいがうまくいきません教えて下さい。 テーブル   項目1    項目2   項目3   8000    12000    1 以下省略   クエリ   項目1   項目2         ヤマダ    9000    以下省略       以上の様な場合でクエリの項目2がテーブルの項目1と項目2の間にある場合は、項目3   の値を返す様なことは、可能でしょうか。お助け下さい。

  • ACCESS クエリでの抽出の方法について

    毎度お世話になっております。 ACCESS2003、SQLSERVER2000を使用しています。 以下のテーブルがあります。 テーブル1 フィールド1   フィールド2   A        10   A        20   A        -10   B         1   B         2   B         3 フィールド1をグループ化し、 フィールド2に0より小さい数がある場合はNG、 ない場合はOKと表示したいのです。 希望する結果 フィールド1   フィールド2   A         NG   B         OK 私が考えた方法は、 1.クエリ1(フィールド2が0以下のフィールド1を抽出する)を作成 2.テーブル1とクエリ1をLEFT JOINし、IS NULL ならOK、そうでないならNGを表示 としました。希望した結果は得られましたが、 もっとスマートな方法(一つのクエリでできるような方法)、 または別解をご教授ください。 よろしくお願いします。

  • アクセス テーブル、クエリーについて

     アクセスでソフト作成中です。そこで教えてほしいことがあります。 たとえば下記のように2つのテーブルがあります。 テーブル1   テーブル2   フィールドA    フィールドB  a1       10  b1       20  c1       30          テーブル1の数値は固定します。そこで下記のようなクエリーを作成したいのです。 クエリー1 フィールドA フィールドB a1 10 b1 20 c1 30 テーブル2に数字を入れていくと テーブル1   テーブル2   フィールドA    フィールドB  a1       10  b1       20  c1       30           40 クエリー1 フィールドA フィールドB a1 40 b1 20 c1 30 このように数字が上書きされていくようなクエリーは作成できないでしょうか。(あくまでテーブル1の数値は固定、フィールドAとフィールドBにリレーションシップは設定されていない。) よろしくおねがいします。

専門家に質問してみよう