- ベストアンサー
データベースで表示算のような計算は可能?
- データベースで表示算のような計算は可能ですか?データベースで在庫数管理を行いたいのですが、集計方法がわかりません。Postgreで、以下のデータベースで計算可能な方法があれば教えてください。
- Excelだと簡単なのですが、日付と入出庫及び3/4時点での在庫数がわかった場合、日付ごとにデータを取り出し、集計結果を在庫に反映する方法を教えていただけないでしょうか。
- 素案としては日付をソートし、1つずつデータを取り出して集計結果を在庫にUpdateする予定です。データベースではこのような計算が可能なのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
------------------ 日付 入出庫 在庫 3/4 0 30 3/5 10 40 3/6 -5 35 3/7 -20 20 ----------------- の3/7の在庫は15ですよね。 表示するだけなら select t.日付, t.入出庫, ( select t3.在庫 + sum(入出庫) from テーブル where 日付 <= t.日付 ) from テーブル t, ( select t2.在庫 from テーブル t2 where t2.日付 = ( select min(日付) from テーブル ) ) t3; でいけます。
その他の回答 (2)
- PXU10652
- ベストアンサー率38% (777/1993)
「データベースで表示算のような計算は可能ですか?」 可能ですが、どのようなテーブル&データ構造になっているのかが分からないと、答えようがありません。 入庫と出庫に在庫のテーブルがあり、商品のID、日付、数量が複数存在するとして、商品のIDと日付でグルーピングして、数量の合計を求めれば、商品ID別に指定した日の入庫数と出庫数が分かります。そこまで来れば、在庫数は、「前日在庫数+入庫数-出庫数」で計算できます。
お礼
回答ありがとうごさいました
- gtx456gtx
- ベストアンサー率18% (194/1035)
>データは日付と入出庫及び3/4時点での在庫数がわかった場合、 >下記のテーブルをSQLなどで作成は可能でしょうか? >Excelだと簡単なのですが ご質問のような処理ができないデータベースでは存在価値がないですが・・・「Excelだと簡単」という点が問題です。 ExcelではExcelに適した処理、データベースにはデータベースに適した処理(Oracle、PostgeSQLなどで違いもあると思います)があるので、「Excelだと簡単」ならExcelで処理しては如何ですか? PostgreSQLで処理する場合、下記のどちらかの方法を採用すると思いますが、どちらも簡単と思います。#1の場合、記録されているレコード数(数百万件程度までは心配ない?)が増えるに従って遅くなりますがデータベースなので、そんな遅くはないと思います。 1.入出庫データをそのまま記録し、出力時に全てのデータを計算して在庫数を算出 2..入出庫データを記録する時に、在庫数を更新して常に在庫数記録
お礼
回答ありがとうごさいました
お礼
回答ありがとうごさいました