Microsoft Access 掲示板

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

3 コメント
views
4 フォロー
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つの売上に対して複数の仕入れが発生する」場合も考えられます(逆もあり)。この場合は上記「受注テーブル」ではうまくいかなさそうなので、さらに手を加えることになります