• ベストアンサー

Accessのクエリについて

1月請求書テーブルと2月請求書テーブルからAという顧客の1月分XXX円、2月分XXX円という合わせた請求書クエリを作りたいのですが、マニュアル本などを見てもまったくわかりません。全くの初心者なので教えてください。お願いします

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

  • ベストアンサー
回答No.4

#1です。 補足要求しておきながら、結局見たのが1日後でした。申し訳ないです・・・ で、既に回答されているichan(#3)さんのものでOKだと思います。 強いて付け加えるとすれば、 あえて、このクエリーでは顧客を絞らないよう↓のような内容にして、 select * from 1月分請求書テーブル union all select * from 2月分請求書テーブル ; (仮にクエリー名を[請求書統合クエリー]とする) 別のクエリーを新規作成して、使用するテーブルに[請求書統合クエリー]を指定した上で、顧客を特定するような作りにした方が後々都合が良いと思います。 あと、各々のテーブルに[月]項目が無い場合は以下の様に作った方がいいかも。 select 顧客, "1月" AS 月, 請求金額 from 1月請求書テーブル union all select 顧客, "2月" AS 月, 請求金額 from 2月請求書テーブル order by 顧客,月 ;

jinah
質問者

お礼

返事がすごく遅くなってしまい申し訳ありません。かなり悪戦苦闘しましたが、ユニオンクエリーで解決しました。 また顧客を絞らないようにやり方を求めていたのでとても助かりました!!! これからもよろしくご教授お願いします。

その他の回答 (4)

回答No.5

ここでのやりとりを見るととても参考になりますね。(^^) いままでのやりとりをまとめますと、 (1)2つのテーブルを結合するユニオンクエリーを作成する。 (2)ユニオンクエリーを元に顧客名を入れたらその顧客を抽出するパラメータクエリーを作成する。 ことで、パラメータクエリーを開くと顧客名を入力されるボックスが表示され、ここに顧客名を入れると、No.2の方の回答に対する補足にあるようなことができますね。 当方はAccess2000ですが、やってみました。以下操作手順を記載しておきます。 (1)2つのテーブルを結合するユニオンクエリーを作成する方法  0)select 顧客名, "1月" AS 月,金額 from 1月分請求書テーブル UNION select 顧客名, "2月" AS 月,金額 from 2月分請求書テーブル; 上記の文字(select~;)をドラッグしてコピー(Ctrl+C)  1)データベースウインドウの「クエリ」オブジェクトで、「デザインビューでクエリを作成する」をダブルクリック  2)「テーブルの表示」ダイアログボックスは、閉じるをクリック  3)クエリメニュー~SQL~ユニオンクエリーを選択(ツールバーのSQLボタンでも可)  4)先ほどコピーしたSQL文を貼り付け(Ctrl+V)  5)ツールバーの実行ボタン(!)をクリックし、クエリの動作を確認  6)ツールバーの上書き保存ボタンをクリックし、名前をつけて保存(例えば請求統合クエリー)  7)クエリウインドウを閉じる。 (2)ユニオンクエリーを元に顧客名を入れたらその顧客を抽出するパラメータクエリーを作成する方法  1)データベースウインドウの「クエリ」オブジェクトで、「ウイザードを使用してクエリを作成する」をダブルクリック  2)「テーブル/クエリ」の欄の▼をクリックし、先ほど作成したユニオンクエリーを選択し、>>ボタンをクリックし、次へをクリック  3)次へをクリック  4)適当なクエリ名を付け(例えば請求顧客別クエリー)を付ける。「クエリのデザインを編集する。」に●をつけて、完了をクリック  5)顧客名フィールドの抽出条件に[]を入力し、文字を入れる。(例えば[顧客名を入力してください。])  6)実行ボタンをクリックし、動作確認する。  ご参考になれば幸いです。m(__)m    

jinah
質問者

お礼

返事がすごく遅くなってしまい申し訳ありません。かなり悪戦苦闘しましたが、ユニオンクエリーで解決しました。これからもよろしくご教授お願いします。

noname#85865
noname#85865
回答No.3

質問の文からすると、2つのテーブルを合わせた(集合)クエリーを作りたいということなので、ユニオンクエリーを作成することになると思います。 クエリーの「新規作成」ボタンをクリックしてデザインビューで開きます。ツールバーのクエリーをクリック→「SQL」→「ユニオン」をクリックします。 SQL文を記述します。 select * from 1月分請求書テーブル where 顧客="A" union all select * from 2月分請求書テーブル where 顧客="A"; 保存してあげれば出来あがりです。

jinah
質問者

お礼

返事がすごく遅くなってしまい申し訳ありません。かなり悪戦苦闘しましたが、ユニオンクエリーで解決しました。これからもよろしくご教授お願いします。

  • KODAMAR
  • ベストアンサー率26% (267/1006)
回答No.2

テーブルの状態にもよりますが、 id | 月 | 金額 A | 1月 | 2000 A | 2月 | 4000 A | 1月 | 5000 A | 3月 | 2500 だとします。 このテーブルをもとに、クエリを作成します。 クエリをデザインビューで開いたら、 ツールバーの中にある「集計」ボタンを押してください。 そして、「金額」のところの、集計方法を「合計」にすれば できるとおもいます。

jinah
質問者

補足

すみません。テーブルの説明が足りませんでした。 テーブル1月 顧客名 金額 A 1000 B 1500 C 1000 A 2500 テーブル2月 顧客名 金額 A 2000 B 1500 C 2000 C 1000 とあって、請求クエリで1月2月のテーブルから顧客ごとのデータを抽出したいんです。多分パラメータクエリのようなボックスを表示させ「A」と入力したら 請求クエリ A 1月 3500 A 2月 2000 とだしたいのです、本当にどうもすいませんが、ご教授願います。

回答No.1

これは表示の仕方によるかと思います。 差し当たって、以下のどれかだとは思うのですが… 補足願います。 1.    顧客 1月  2月    ------------------     A  1,000 2,000 2.    顧客 月 請求金額    -----------------     A 1月 1,000     A 2月 2,000 3.    顧客 請求総計 -------------     A  3,000

jinah
質問者

補足

回答ありがとうございます!!!2番の方法が希望なのですが、どうしても1月分だけしか抽出できません。よろしくお願いします。