2012年 02月 19日

ACCESSで悩んでいます。売上管理のシス...

ACCESSで悩んでいます。売上管理のシステムを作成しているのですが、教えてもらいたいことがあります。次のようなテーブルを作成しているのですが、その日の売上を出すにはどのようにすれば良いですか。クエリを作成したほうが良いですよね。商品テーブル:フィールド名・・・[商品名]、[値段]商品名、値段------------------日替り定食、800ラーメン、600カレーライス、550売上テーブル:フィールド名・・・[日付]、[日替り定食]、[ラーメン]、[カレーライス]など日付、日替り定食、ラーメン、カレーライス---------------------------------5/5、30、13、255/6、36、23、21・・・・・商品テーブルの[商品名]は、売上テーブルの各商品名と同様のものです。売上テーブルの各商品フィールドには、販売個数を入力することになっています。基本中の基本のことで悩んでいます。

ベストアンサー

売上テーブルのフィールド名に商品名をつけて、横に羅列した時点で、問題を難しくしていますね。(結びつけるキーがない。)本来はテーブル設計の段階で、商品コードを採番し、売上テーブルは日付と商品コードで持たせるべきでしたね。しかし、現状での求め方は以下のSQLで可能です。SELECTU.日付、((U.日替わり定食*S1.値段)+(U.ラーメン*S2.値段)+(U.カレーライス*S3.値段))As日別売上FROM売上テーブルAsU、商品テーブルAsS1、商品テーブルAsS2、商品テーブルAsS3WhereS1.商品名='日替わり定食'AndS2.商品名='ラーメン'AndS3.商品名='カレーライス';クエリのSQLビューで貼り付けると、お望みに近い結果にはなります。しかし、ご覧の通り、ベタに商品名で無理やりくっつけています。当然、メニューが増えると都度、SQL(クエリ)の修正が発生します。よって、テーブル設計を見直して、シンプルな構造には今から変更はできませんか?<商品テーブル>・商品コード←主キー・商品名・値段<売上テーブル>・日付←主キー・商品コード←主キー・売上個数メニューが増えた場合は、商品テーブルだけに追加すればよいです。(売上個数を入力するフォームがあれば、そこも修正が必要ですが。)クエリもかなりシンプルになり、メンテナンスも楽です。また、細かく言えば、価格が改定された場合を考慮して、商品テーブルに、適用開始年月日と適用終了年月日を持たせ(開始日は商品コードをともにキーにします。)、売上日当日の値段を保有させることも可能です。

販売管理

コメント[0], トラックバック[0]
登録日:2012年 02月 19日 06:08:43