今回は、商品の受注状況を固定的に記録したテーブル「累積売上_fx」を使って、グループ化を試してみます。まず、テーブルの構造と内容を確認しておきましょう。
- フィールド構成と内容 -
テーブル「累積売上_fx」のフィールド構成は表1のようになっています。このテーブルには、予め画面1のように29件のデータが記録されています。
これまでにも何度か説明してきましたが、受注(売上)の情報は、「得意先_mr」に関連付けられた「売上ヘッダ」(日付と顧客を記録)と、「商品_mr」に関連付けられた「売上明細」(商品と数量を記録)とに分けて記録され、この2つのテーブルを伝票番号で括り出すことによって「1人の顧客に対する1回の売り上げ」が明確になるようになっています。
「累積売上_fx」はそれぞれの関連付けを断ち切り、「売上ヘッダ」と「売上明細」の内容を他のテーブルとは独立した形で記録した、最終的な受注記録です。顧客や商品の基礎情報に変更があっても、「累積売上_fx」に記録されたデータには影響が及びません。
表1:テーブル「累積売上_fx」のフィールド構成
列名 |
データ型 |
長さ |
伝票番号 |
int |
4 |
伝票日付 |
datetime |
8 |
お客様ID |
int |
4 |
氏名 |
nvarchar |
30 |
読み |
nvarchar |
30 |
性別 |
nvarchar |
4 |
生年月日 |
datetime |
8 |
商品ID |
int |
4 |
商品名 |
nvarchar |
50 |
数量 |
int |
4 |
単価 |
money |
8 |
金額 |
money |
8 |
- 件数が少なければ追加を -
画面1は、あくまでサンプル・データベースに最初から記録してある内容です。クエリアナライザなどを使って何らかの処理を行っていた場合、内容が変わっている可能性もあります。
必ずしも、画面と同じ内容である必要はありません。15件程度のレコードが記録されていれば、サンプルのSQLを試したときにそれなりの結果を得ることができます。10件以下だとグループ化した結果が少数になり、SQLの意味を理解するのに役立ちません。レコード件数が少ない場合には、EnterpriseManagerでテーブルを開き(テーブルを選択状態にし、メニューから「操作」→「テーブルを開く」→「全行を返す」を選びます)、キーボードから直接新規レコード(最終行の次の行)に値を書き込んでください。
その際、各フィールドのデータ型を間違えないようにしましょう。また、商品名と商品IDの関係にも注意してください。画面1を見ながら同じ内容を入力すれば安全です。
「累積売上_fx」は他のテーブルとはまったく関連付けされていないため、自由にレコードを追加できます。しかし、「顧客_mr」に保存されていないお客様IDと氏名、「商品_mr」に記録されていない商品IDと商品名を入力したり、単価・数量・金額の関係を間違ってしまうと、後々の操作で矛盾が発生します。必ず、それぞれのテーブルに存在する値を矛盾なく書き込むようにしてください。
|
|
|