- ベストアンサー
ACCESS で、存在しないデータも表示させたい(?)
こんにちは。すみません、タイトルが日本語的に変ですね(汗) ACCESS 2000 初心者です。 商品CODE表 1 2 3 に対し、 売上9月 1 … 100 3 … 50 売上10月 2 … 30 3 … 70 というデータがあったとします。 これを単純に、選択クエリで結びつけると、 CODE 9月 10月 3 50 70 とだけ表示しますね。 下記のように CODE 9月 10月 1 100 0 2 0 30 3 50 70 表示させることはできますか? EXCELでVLOOKUP した場合、#N/A 等で表示してくれますよね。そしたら ISERROR 関数などで0表示するのですが。。 ACCESS はイメージが掴めなくて困っています。ヒントをください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
SQLでいうところの"LEFT JOIN"を使うことになりますね。 そのまま結合すると"INNER JOIN"になっているので、 結合の左右いずれかが存在しないものは出てきません。 "LEFT JOIN"にすると、左にあって右にないものについては 右側から取る値がNULLになって表示されます。 (ここでは左側は商品CODE、右側は売り上げが相当します) Accessでデザインビューでこの指定をするには、まず 結合の矢印を右クリックして「結合のプロパティ」を開きます。 そこで2番の、'商品CODE表'の全レコードと売上9(10)月の 同じ結合フィールドのレコードだけを含める、 という項目を選択すればOKです。
その他の回答 (3)
- Ryocchi
- ベストアンサー率38% (38/98)
クエリをデザインで開くと、「商品コード表」テーブルと「売上9月」、「売上10月」のテーブルが”商品コード”をキーに結合していると思います。 この結合している線をダブルクリック(又は、[表示]-[結合プロパティ]をクリック)して、「商品コード表の全レコードと売上9月(売上10月)の同じ結合フィールドのレコードだけを含める」という所にチェックを入れる(9月、10月それぞれに行ってください)と出来ると思います。
お礼
ありがとうございました! なんとか結果を出してみることができました!
- banker_U
- ベストアンサー率21% (17/78)
#1さんへの補足を読みました。 うまくいかない理由がよくわかりませんが、とりあえず、エラーの内容どおり、 1.商品codeと9月だけのクエリを一回作る。 2.そのクエリと10月でまたクエリを作る。 でとりあえず解決はできると思います。 根本的な解決は、SQLビューの内容をここに、書いていただければ、解決できるかもしれません。 念のためやりかたは、 選択クエリウインドウのタイトルバーを右クリックしてSQLビューです。
お礼
フォローありがとうございます! 家では2000ですが、現在会社で97で同じことをしてみました。 同じようにエラーになり、SQLビューを表示しようとしても同じエラーメッセージです。。が、 9月と10月の間に勝手にできていた結合線を削除してみたら、望んだ結果が出てきました。 な、なんかよくわからないのですが、一つ学習できました。
- arare2005
- ベストアンサー率31% (63/199)
商品code_DB に売上9_DB、売上10_DB を結合します。 この結合の時に、結合線が出ますが、これを選択して右クリックすると、両方存在する場合、商品_code_DBに存在する場合等、どちらを基準にするかの結びつけができます。 今は、商品_code_DB⇔売上_DB か、売上9_DB⇔売上10_DB だと思いますので これを商品_code_DB→売上_DB に変更して下さい。 要は、基準になる元から、何を抽出するかをなるべく単純に行う方法を考えれば、判り易いし速く動作するクエリが出来ますヨ(^^) 売上9、10_DBも分けられているのであれば、キーに年月(日付よりは数値か文字で6桁が入力可能な属性が良いかも)を入れると、後々便利ですよ(^^)v
お礼
ありがとうございました! でもきっと、おっしゃられていることはNo.1のosumitan 様と同じですよね。。 (補足の重複は避けます) とてもドン臭い私なのですが、社内の部署の中ではそこそこEXCEL(&VBE)が使えるので、今度はACCESS! と押し付けられてしまい、途方にくれています。 ゆくゆくはSQLというものも齧り、マクロの実行まで覚えなければなりません。 またよろしくお願いします。。
お礼
ものすごい早い回答、ありがとうございます!
補足
さっそく実行してみました。すると、 商品CODE と売上9月 商品CODE と売上10月 は、それぞれ望む結果が得られた(セル?が空白表示された)のですが、 商品CODE と売上9月 と売上10月 を同じクエリ内に取り込み、実行しようとすると あいまいな外部結合が含まれているので、SQLステートメントを実行できません。いずれかの結合を最初に実行するために、第一次結合を実行する分割クエリを作成し、SQLステートメントにそのクエリを含めてください。 というエラーメッセージが出ました。 本当に恥ずかしいのですが、意味すらよく分かりません。 ご指導いただければ、ありがたいです。。