<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--基本操作をさらに考える
   >00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 



「売上明細」テーブルと、「社員テーブル」を、[社員番号]というフィールドの値を基準にして結びつけるクエリを作ってみましょう。


新しくクエリーを作成します。
「テーブルの表示」から、「社員テーブル」と「売上明細」のふたつのテーブルを選びます。そうすると、ふたつのテーブルが下の図のように選ばれてきますね。
で、なんか、テーブルとテーブルの間に、細い線が出てると思いません?

この線は「結合線」といって、「このふたつのテーブルがどのフィールドによって結び付けられているか」を表す線です。フィールド名をそろえておけば(どっちも[社員番号]だし)、こうやって自動的に結びついてくれます。このふたつのテーブルは、[社員番号]によって結びつけることができるのです。

こういうのを「リレーションシップ」っていいます。
一番最初にお話したとおりで、これがちゃんと結びついてこそ、「いつどこの客に何をいくらで誰が売ったのか」という情報が関連付けられて出せるようになるわけです。

「リレーションシップ」って、こういうことです。要するに「テーブルとテーブルの結びつきを考える」っていうことです。
「テーブルとテーブルを結びつける」ことを言うんじゃないんですよ。
あくまでもわたしたちが「考える」ことを指すのだと思ってください。
だから、意味もなくわけもわからずやみ雲にテーブル同士を結びつけることはリレーションシップではないのです。
意味がある結びつきで、処理の中で有効で、わたしたちが「必要」と思う結びつきのことを「リレーションシップ」というのだと考えましょう。


で、後は下のように、ふたつのテーブルからそれぞれフィールドを選んでみましょう。
まあ、適当で・・・。それっぽいのをそれっぽい順番で表示されるように選んでみてください。

で、これをデータシートビューで表示すると・・・。
「何番の伝票で、いつ、誰が、いくら売り上げたか」ということが、ちゃんとわかるようになりますよね。

単に、「各伝票の売上担当者の名前、所属を知りたい」ということなら、こういうクエリーを作って保存し、そのクエリーをテーブル代わりに使うのです。


売上金額の多い順に並べ替えとかしてみたりして。

・・・。でも、この並べ替えって、なんか意味がありますかねぇ。
「過去に一番たくさん売り上げた伝票」を見つけるってことになりますよね。「687番」の伝票です。・・・って、これってなんか意味ありますかね。

今のこのクエリーは、「売上伝票」テーブルの中のレコードに、「社員テーブル」の情報をくっつけて出してますよね。
だから、このクエリーの中の「1レコードの単位」は?????

[伝票番号]ですよね。

もし、「今までで一番売り上げた人」とか「一番売上の多い組」を知りたいのであれば、このままではいけないですよね。さて、どうすればいいでしょう。


じゃあ、ちょっとやってみましょう。クエリーのデザイン画面に戻って・・・。じゃあ、「誰が一番いっぱい売り上げてるか」を考えてみましょう。このテーブル、2000年の6月15日から入力されてますから、6月15日から今までの分全部、ってことで。

まず、いらないフィールドは削除します。社員番号ごとに集計するんですから、[伝票番号]と[売上日]はいらないですよね。消しちゃいます。
フィールド名のすぐ上の、薄いグレーの部分をクリックして(上の図のように黒くなります)Deleteキーを押せば、そのフィールドは選ばなかったことになりますんで、ふたつとも消しちゃってください。
ん、なんでこのふたつのフィールドがいらないのか、意味がわからない・・・という人は、ちとこの先厳しいですぞ。
テーブルの中の「1レコードの最小単位を考える」ってこと、もう一度おさらいしてくださいね。

Σのツールボタンをクリックすると、「集計」をすることができます。
[社員番号][名前][所属]は、同じですよね。つまり、レコードによって社員番号0008の人がデヴィッド・カバーデイルさんだったりジョン・ボン・ジョヴィさんだったりさくら組だったりゆり組だったりと、その都度変わったりしないってことです。0008の人はいつもトミー・ショウでゆり組です。だから、この3つのフィールドを全部「グループ化」するというのは、「[社員番号]だけでグループ化」したのと同じ結果になるはずなんですね。

[売上]を合計して、並べ替えもしてみましょう。

で、データシートビューに切り替えてみると・・・。さっきとの違い、わかります?今度は、42レコードしかないです。
つまり、「伝票番号ごと」じゃなくて、「売上のあった社員ごと」に集計した結果が出てるわけです。


もし、「所属ごとに集計してどの組が一番売り上げたか」を知りたい場合は???どんなクエリーにすればいいでしょう。
ちょっと考えてみてくださいな。

結果は多分、こんな感じになると思うんですけど・・・。