• ベストアンサー

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月分だけしか抽出できません。よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access クエリ このレコードセットは・・・

    いつもお世話になります。 Accessで下記の様にクエリを作成しましたが、”このレコードセットは更新できません”と出てしまいます。 ■テーブル1  ・顧客ID(主キー)  ・顧客名  ・住所  ・TEL ■テーブル2  ・顧客ID  ・取引ID(主キー)  ・請求金額 ■クエリ1(集計クエリ)  ・顧客ID グループ  ・請求金額合計: Sum(請求金額) 合計 ■クエリ2(実際に使用するクエリ)  ・顧客ID(テーブル1)  ・顧客名(テーブル1)  ・住所(テーブル1)  ・TEL(テーブル1)  ・請求金額合計(クエリ1) このクエリ2を開いて更新しようとしても、”このレコードセットは更新できません”と左下に表示されて更新できません。 ・請求金額合計(クエリ1)を除けば問題なく更新できます。 ですが1顧客に対して通算で幾ら請求をしたかとその顧客のデータを同一クエリで表示・更新したいので、意味をなさなくなってしまいます。 どなかた良い方法をご教授下さいませ。

  • アクセスのクエリについて教えてください。

    アクセス超初心者です。 長文の質問になってしまって、申し訳ありません。 SQLは全く使えず、クエリだけの処理にしています。 どうやって質問してよいのか分からないので、マニュアルやインターネットで、さんざんヒントを探しているのですが、途方にくれ、勇気をもって質問することにしました。 是非、教えて頂けないでしょうか。 ――履歴テーブル―― [顧客No] [利用日] 0001   99/12/31 0001   00/01/01  0002   02/01/01 ――クラステーブル―― [クラス][金額] A \1,000 B   \800 ――契約履歴テーブル―― [契約No][顧客No] [契約(始)] [契約(至)][クラス] 1  0001    99/01/01   99/12/31 A 2  0001    00/01/01   00/12/31 B 3  0002    99/01/01   99/12/31   A 4 0002    00/01/01   00/12/31   B **履歴クエリ** [顧客No] [利用日] [クラス] [金額]  0001   99/12/31 A \1,000  0001   00/01/01 B \800  0002   02/01/01   A   \1,000  0002   02/01/01 B \800  ↑0002は1回しか利用していないのに上と同じ利用日が出てきてしまう。なので合計するときに不都合がでてきてしまう。 ??したいこと?? 1.履歴クエリに契約範囲内にあったクラスを表示し、金額を合計したい。 2.契約範囲内にないものについては[クラス]に”契約日未入力”と表示して、金額を表示しないようにしたい。 以上、2点なのですが、「利用日のクラスに合った金額を合計する」、という方法であれば、他の方法でもご存知なら教えてください。 よろしくお願いします。

  • アクセスのクエリについて教えてください。

    アクセス初心者です。 AテーブルとBテーブルを合体したCテーブルを作成したいのですが、 クエリを使って1工程でできませんでしょうか。 レコードが1000を越えると大変な作業になりますので、 何か良い方法を探しております。宜しくお願いします。 Aテーブル 顧客No  名前  住所  1     鈴木  東京  2     田中  横浜 Bテーブル 顧客No  名前  電話  1     鈴木  03  3     山田  044 Cテーブル 顧客No  名前  住所  電話  1     鈴木  東京  03  2     田中  横浜  3     山田      044              以上

  • アクセスのクエリで更新できるようにしたいんですが、

    アクセス2000を使っています。クエリから、作ったフォームを更新したいのですが、できません。どなたか教えて下さい。 二つのテーブルがあります。 ・テーブル1=顧客番号、顧客名、初来店日、来店日2・・・ ・テーブル2=顧客番号、顧客名、アンケートの有無、カードの有無・・・ というようなもので、エクセルから外部データの取り込み→テーブルのリンクで作ってます。 この二つのテーブルから ・クエリ1=顧客番号(テーブル1)、顧客名(テーブル1)、初来日店(テーブ ル1)、アンケートの有無(テーブル2) を作り、これをもとにフォームを作ってフォーム上でアンケートの有無を更新できるようにしたいのですが・・・。 初心者で説明も上手くできなくてごめんなさい。 宜しくお願いいたします。

  • accessのクエリのフィールドで式入れて並び替えする方法

    アクセスの初心者ですですが、本を見ながらですがようやくVBAを使えるようになりました。レベルはその程度です。 標記のとおり、クエリのフィールドに式を入れたら並び替えができなくなりました。式は以下のとおりです。 ●●●: IIf([●●●]>=14,[●●●]*0,[XXX]+(14-[●●●])) データシートビューにすると、XXXの小窓が出てきます。 フォームでもテーブルでもレポートでも並びかえができました。 クエリの式は並び替えができないものなんでしょうか? なければ結構ですが、なにか方法があったり、使い方が間違って いるなら教えてください。 よろしくお願いします。

  • Accessのクエリ作成について

    クエリを作成する際の、テーブルの設定の仕方がよくわかりません。 たとえば、「顧客リスト」テーブルと「販売履歴」テーブルに、それぞれ「顧客ID」フィールドがあり、「顧客ID」フィールドがリレーションシップで設定されているとします。 新たに、選択クエリを作成し、そのクエリに、「顧客ID」フィールドを設定するときに、どちらのテーブルの「顧客ID」フィールドを設定するかがわかりません。 ちなみに顧客IDフィールドには、リレーションシップを設定していて、1対多の設定をしています。 「顧客リスト」テーブルの「顧客ID」フィールドが、「1」の側で、 「販売履歴」テーブルの「顧客ID」フィールドが「多」の側です。 どちらのテーブルを使用しても結果は同じなのですが、 選択クエリを作成するときに、上記のように、同じフィールドを持テーブルが2つありリレーションシップを 設定している場合は、どちらのテーブルを使わないといけないというような決まりはあるのでしょうか? どちらを使用しても構わないのでしょうか。 特に、決まりがない場合は、一般的には、どのように設定されているのでしょうか?

  • Access クエリ検索結果

    Accessを利用して顧客管理をしています。顧客基本情報tableの顧客IDと予約表tableの顧客IDを繋げて予約日と予約者名をクエリで出しています。 ところが、検索時になぜか入力した日とは別の日に入れ替わって予約者名が出てきてしまうことがよくあります。例えばAさんを10月26日で入力したのに(別紙に記録が残っています)、10月30日の予約者としてでてきてしまうのです。なので26日の時点でAさんが予約者とは知らずに受け付けで混乱してしまいます。 予約表クエリを開くたびに、同じ日付で違う答えが返ってきてしまうこともあります。(人数が増えていったりとか) どうしたら良いでしょうか?教えてください。

  • Accessのクエリ作成について

    クエリを作成する際の、テーブルの設定の仕方がよくわかりません。 たとえば、「顧客リスト」テーブルと「販売履歴」テーブルに、それぞれ「顧客ID」フィールドがあり、「顧客ID」フィールドがリレーションシップで設定されているとします。 新たに、選択クエリを作成し、そのクエリに、「顧客ID」フィールドを設定するときに、どちらのテーブルの「顧客ID」フィールドを設定するかがわかりません。 ちなみに顧客IDフィールドには、リレーションシップを設定していて、1対多の設定をしています。 「顧客リスト」テーブルの「顧客ID」フィールドが、「1」の側で、 「販売履歴」テーブルの「顧客ID」フィールドが「多」の側です。 どちらのテーブルを使用しても結果は同じなのですが、 選択クエリを作成するときに、上記のように、同じフィールドを持テーブルが2つありリレーションシップを 設定している場合は、どちらのテーブルを使わないといけないというような決まりはあるのでしょうか? どちらを使用しても構わないのでしょうか。 特に、決まりがない場合は、一般的には、どのように設定されているのでしょうか?

  • アクセスの削除クエリーについて

    アクセス2000の削除クエリーを実行すると、「削除できません」の表示がでます。テーブルを2つ(AとB)追加して、顧客CDでリレーションを組みます。テーブルAからはアスタリスクマークをドラッグしてますので、FROMがでます。テーブルBの顧客CDをドラッグするとWHEREがでます。つまり、テーブルBにある顧客CDを全部テーブルAから削除したいのですが、データウィンドウは表示されますが、削除を実行すると、「削除できません」の表示がでます。アクセス2.0では可能だったのですが、アクセス2000ではなぜできないのでしょうか??

  • Accessでのレポートでのクエリ抽出について

    Access2000のクエリについて教えて頂きたいのですが、現在顧客テーブルに何百件のデータがあります。それをレポートで期間指定して抽出したいのですが(例:10月30日~11月27日)このような期間条件に該当するクエリを良ければご教授頂けたらと思います。 顧客テーブルの訪問日時が該当項目になります。