Microsoft Access 掲示板

売上テーブルと仕入れテーブルで計算をする方法

3 コメント
views
4 フォロー

売上テーブルと仕入れテーブルがあり
A社から仕事を受注したデータは売上テーブルに入れるとします
A社から仕入れたデータは仕入れテーブルに入れるのですが
A社の売上から仕入れを引いたりするのはどのようにしたらよいでしょうか?

売上仕入れテーブルとして一つにしようと思いましたが、共通のフィールドが少なく
視認性や保守性が悪くなるのでテーブルをわけました

こういったときにクエリをつかい2つのテーブルをはさんで計算をするのでしょうか?
もしくは、単純にエクスポートしてExcelで計算したほうが柔軟で手っ取り早く楽でしょうか?

やったま
作成: 2022/05/25 (水) 16:20:39
通報 ...
1
hiroton 2022/05/25 (水) 17:50:31 572d7@f966d

「仕入テーブル」に売上IDフィールドを設けてクエリで結合して差額を計算します
売上IDは「売上テーブル」の主キーです(「売上テーブル」には主キーが必要です)

次のようなイメージになります(質問事項に不要な項目は省いています)

売上テーブル

売上ID売上額
11000
22000

仕入テーブル

仕入ID仕入額売上ID
15001
28002

受注クエリ

仕入ID仕入額売上ID売上額差額
150011000500
2800220001200
2
hiroton 2022/05/25 (水) 18:27:16 572d7@f966d >> 1

補足
売上テーブル側に仕入IDを設ける形でも同様のクエリは作成できますが、内製品で仕入が発生しない売上のことを考えると「売上のレコードに於いて仕入IDが存在しないのが正しい」状態が起こりえます。

未入力(未処理)なのか、空白で正解なのか、一見してわからないような構造を作ると管理の手間が増えます
フィールドは全てデータで埋まるような構造にするのが基本です


ということで、仕入テーブル側に売上IDフィールドを設ける方法を提示していますが、「仕入れたけど売れなかった」は実務上たいてい起こるので、提示例も最適解とは言えません
「Accessでちょこっとやるだけなら運用で対応するから別にいいかな」とか、
「実務上でそういうデータが省かれた最終データしか扱わない」とか
ホントにこれだけで済む場合もあります


もう少し深く作るなら「受注テーブル」を用意する(売上テーブルとは別に)となります

受注テーブル

受注ID売上ID仕入ID
111

↑ここに登録のない売上ID,仕入IDは未処理ということ
それらのデータはクエリで抽出できる(未処理データの管理画面や警告表示を作ったりできる)


さらに掘り下げると「1つの売上に対して複数の仕入れが発生する」場合も考えられます(逆もあり)。この場合は上記「受注テーブル」ではうまくいかなさそうなので、さらに手を加えることになります

3
りんご 2022/05/26 (木) 01:17:30 c564b@0e907

 素人考えです。過度な期待はしないで下さい。
取引先テーブル:🔑取引先の名前,…
仕入先テーブル:🔑仕入先の名前,…
得意先テーブル:🔑得意先の名前,…
etc:…
得意先と売上日と売上商品のテーブル:🔑得意先の名前,🔑売上日の日付,🔑売上商品の名前,金額,…
仕入先と仕入日と仕入商品のテーブル:🔑仕入先の名前,🔑仕入日の日付,🔑仕入商品の名前,金額,…
仕入先と仕入日と仕入商品と得意先と売上日のテーブル:
🔑仕入先の名前,🔑仕入日の日付,🔑仕入商品の名前,🔑得意先の名前,🔑売上日の日付,金額,…
仕入先と仕入日と仕入商品と得意先と売上日と売上商品のテーブル:
🔑仕入先の名前,🔑仕入日の日付,🔑仕入商品の名前,🔑得意先の名前,🔑売上日の日付,🔑売上商品の名前,金額,…
etc:…