![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
こんにちは。すみません、タイトルが日本語的に変ですね(汗)
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 はイメージが掴めなくて困っています。ヒントをください。
No.1ベストアンサー
- 回答日時:
SQLでいうところの"LEFT JOIN"を使うことになりますね。
そのまま結合すると"INNER JOIN"になっているので、
結合の左右いずれかが存在しないものは出てきません。
"LEFT JOIN"にすると、左にあって右にないものについては
右側から取る値がNULLになって表示されます。
(ここでは左側は商品CODE、右側は売り上げが相当します)
Accessでデザインビューでこの指定をするには、まず
結合の矢印を右クリックして「結合のプロパティ」を開きます。
そこで2番の、'商品CODE表'の全レコードと売上9(10)月の
同じ結合フィールドのレコードだけを含める、
という項目を選択すればOKです。
この回答への補足
さっそく実行してみました。すると、
商品CODE と売上9月
商品CODE と売上10月
は、それぞれ望む結果が得られた(セル?が空白表示された)のですが、
商品CODE と売上9月 と売上10月
を同じクエリ内に取り込み、実行しようとすると
あいまいな外部結合が含まれているので、SQLステートメントを実行できません。いずれかの結合を最初に実行するために、第一次結合を実行する分割クエリを作成し、SQLステートメントにそのクエリを含めてください。
というエラーメッセージが出ました。
本当に恥ずかしいのですが、意味すらよく分かりません。
ご指導いただければ、ありがたいです。。
No.4
- 回答日時:
クエリをデザインで開くと、「商品コード表」テーブルと「売上9月」、「売上10月」のテーブルが”商品コード”をキーに結合していると思います。
この結合している線をダブルクリック(又は、[表示]-[結合プロパティ]をクリック)して、「商品コード表の全レコードと売上9月(売上10月)の同じ結合フィールドのレコードだけを含める」という所にチェックを入れる(9月、10月それぞれに行ってください)と出来ると思います。
No.3
- 回答日時:
#1さんへの補足を読みました。
うまくいかない理由がよくわかりませんが、とりあえず、エラーの内容どおり、
1.商品codeと9月だけのクエリを一回作る。
2.そのクエリと10月でまたクエリを作る。
でとりあえず解決はできると思います。
根本的な解決は、SQLビューの内容をここに、書いていただければ、解決できるかもしれません。
念のためやりかたは、
選択クエリウインドウのタイトルバーを右クリックしてSQLビューです。
フォローありがとうございます!
家では2000ですが、現在会社で97で同じことをしてみました。
同じようにエラーになり、SQLビューを表示しようとしても同じエラーメッセージです。。が、
9月と10月の間に勝手にできていた結合線を削除してみたら、望んだ結果が出てきました。
な、なんかよくわからないのですが、一つ学習できました。
No.2
- 回答日時:
商品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というものも齧り、マクロの実行まで覚えなければなりません。
またよろしくお願いします。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Excel(エクセル) ピボットテーブルの表示変更の仕方 初心者なので、的外れな質問だったらすみません 受注日ごとに商品名と 1 2022/04/26 23:23
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) ExcelのVLOOKUP関数 7 2022/08/23 06:46
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
- Access(アクセス) 対象月の2桁表示について 1 2023/01/07 05:08
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Excel(エクセル) 下記エクセルの式がなぜこうなるのか理由が知りたいです。 6 2022/08/20 00:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実績累計の求め方と意味を教え...
-
Accessで別テーブルの値をフォ...
-
カレントレコードが無い事を判...
-
ファイル書込みで一行もしくは...
-
SQL文について
-
GROUP BYを行った後に結合した...
-
SQL 副問い合わせ使い方について
-
ループの仕方
-
Oracle SQL 2つのテーブルを使...
-
マテビューのNOTNULL設定について
-
Order by句でバインド変数を使...
-
クエリビルダで列名を変数にし...
-
MySQLで MAX()とGROUP BYを使う...
-
[VBA] ADOの Clone と AddNew
-
【ExcelVBA】Powerクエリーでい...
-
レコードセット(ADO.Recordset)...
-
DB2で UNION ALL と GROUP BY ...
-
Excel VBA:セルを新旧1つずつ...
-
抽出したデータを修正して元の...
-
「何々でなければ、この値」と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実績累計の求め方と意味を教え...
-
エクセルの指定したシートにエ...
-
エクセルのピボットテーブルの...
-
弥生販売08 得意先分類1の...
-
ACCESS で、存在しないデータも...
-
売上データに会社毎に請求番号...
-
弥生販売08を使用いているユー...
-
非連続したデータを別シートに...
-
EXCELを使って顧客管理
-
Accessのフォームでの合計欄を...
-
C言語を用いて書いた以下のプロ...
-
バーコード利用する方法を教え...
-
ACCESS SQL 括弧について
-
Accessで月間売り上げ目標達成...
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
SQL文で右から1文字だけ削除す...
-
ADO VBA 実行時エラー3021
おすすめ情報