• ベストアンサー
  • すぐに回答を!

データベースで表示算のような計算は可能?

データベースで表示算のような計算は可能ですか? データベースで在庫数管理を行いたいのですが、集計方法がわかりません。Postgreで、以下のデータベースで計算可能な方法があれば教えてください。 データは日付と入出庫及び3/4時点での在庫数がわかった場合、 下記のテーブルをSQLなどで作成は可能でしょうか? Excelだと簡単なのですが ------------------ 日付 入出庫 在庫 3/4 0 30 3/5 10 40 3/6 -5 35 3/7 -20 20 ----------------- 素案としては日付、ソート後、1つずつデータを取り出し、集計結果を在庫にUpdateする予定です。 アドバイスお願いします

noname#141015
noname#141015

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数164
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2

------------------ 日付 入出庫 在庫 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)

  • 回答No.3

「データベースで表示算のような計算は可能ですか?」  可能ですが、どのようなテーブル&データ構造になっているのかが分からないと、答えようがありません。  入庫と出庫に在庫のテーブルがあり、商品のID、日付、数量が複数存在するとして、商品のIDと日付でグルーピングして、数量の合計を求めれば、商品ID別に指定した日の入庫数と出庫数が分かります。そこまで来れば、在庫数は、「前日在庫数+入庫数-出庫数」で計算できます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうごさいました

  • 回答No.1

>データは日付と入出庫及び3/4時点での在庫数がわかった場合、 >下記のテーブルをSQLなどで作成は可能でしょうか? >Excelだと簡単なのですが ご質問のような処理ができないデータベースでは存在価値がないですが・・・「Excelだと簡単」という点が問題です。 ExcelではExcelに適した処理、データベースにはデータベースに適した処理(Oracle、PostgeSQLなどで違いもあると思います)があるので、「Excelだと簡単」ならExcelで処理しては如何ですか? PostgreSQLで処理する場合、下記のどちらかの方法を採用すると思いますが、どちらも簡単と思います。#1の場合、記録されているレコード数(数百万件程度までは心配ない?)が増えるに従って遅くなりますがデータベースなので、そんな遅くはないと思います。 1.入出庫データをそのまま記録し、出力時に全てのデータを計算して在庫数を算出 2..入出庫データを記録する時に、在庫数を更新して常に在庫数記録

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうごさいました

関連するQ&A

  • SQLで残高計算

    現在 id-日付-入金-出金-残高 という5項目あるデータベースがあります。 入出金額を変更した際など、日付でソートをして、すべての行の残高データを再計算し、データを更新したいのですが、どのようなSQL分を使えばよろしいのでしょうか。 ご教授願います。

    • ベストアンサー
    • MySQL
  • activereportの計算式

    VB6.0でactivereportを使っています。 日付    品名  品番 入庫 出庫 在庫数  2006/08/01 りんご 0001  3     3   2006/08/01 りんご 0001     1  2   2006/08/01 りんご 0002  8   2  6 というように今在庫テーブルには品番ごとの在庫数が入っています。 それをactivereportへ出力するときに 品番を無視して在庫数を計算したいのですが どうすればいいのでしょうか? 日付    品名  品番 入庫 出庫 在庫数  2006/08/01 りんご 0001  3     3   2006/08/01 りんご 0001     1  2   2006/08/01 りんご 0002  8   2  8 というようにしたいのです。 前日の実在個数+入庫-出庫という方法を考えています どこをどのようにしたらいいのかがわかりません。 教えてください。 よろしくお願いします。

  • Accessのレポートで日々の在庫数を求めるには?

    現在在庫管理のAccessアプリケーションを作っています。 商品別の指定期間の入出庫履歴の一覧をテーブルを基にしたレポートで表現したいと思っています。 データ基となる[T_商品別期間集計]の大まかな構成は以下の通りです。 (クエリにて指定のアイテムを指定期間で抽出しテーブルに書き込んであります) 日付 , 時刻 , 業務区分 , 前月繰越数 , 期間入庫数 , 期間返品数 , 期間出庫数 , 出庫先ID 2007/06/29 , , 7 , 52 , 1 , 0 , 0 , 0 , 0 2007/07/03 , , 2 , 0 , 0 , 1 , 0 , 0 , 0 2007/07/03 , 10:27:05 , 4 , 0 , 0 , 0 , 1 , 0 , 15780 2007/07/03 , 8:45:15 , 3 , 0 , 0 , 0 , 0 , 1 , 15857 2007/07/03 , 10:05:30 , 3 , 0 , 0 , 0 , 0 , 1 , 15631 2007/07/03 , 10:25:05 , 3 , 0 , 0 , 0 , 0 , 1 , 15816 2007/07/03 , 10:25:30 , 3 , 0 , 0 , 0 , 0 , 1 , 15780 このテーブルを基にして日付をグルーピングしたレポートを作りました。 日付グループフッターで日付ごとの入庫、返品、出庫の各値の合計をSum関数にて計算しています。 また、それらの合計値を計算し当日増減数を同じく計算させています[txt_当日の増減]。 現在の状態から、当日のこの商品の在庫数を日付グループのフッターに表示させたいのですが、 最終棚卸日(この例では2007/06/29)から当日までの入出庫数の計算をさせるにはどのような方法がありますでしょうか。 レポート内で計算した[txt_当日の増減]の当日までの集計と2007/06/29時点の在庫数を計算させる事ができれば、、、とは思うのですが、やり方がわかりません。 お分かりになる方がいらっしゃいましたら、是非教えて頂ければ助かります。

  • フォーム上でデータをあるテーブルに追加するには?

    お願いします。 Accessで出庫と在庫の管理を行うと考えてます。 出庫のリストは他のソフトからCSVでインポートでテーブル「importitem」に入ります。同品番の出庫数の集計を兼ねてクエリを行います。クエリ「出庫リスト」ができました。それをフォームにして 「出庫日」「品番」「商品名」「出庫数」の項目です。このフォームで1データづつ確認してボタン「在庫引き落とし」で在庫をマイナスします。その後(同時なら最高)出庫履歴のテーブルに追加書き込みをしたいと考えてます。 在庫引き落としはsqlを使いました。 strSQL = "UPDATE 在庫 SET 在庫.在庫数 = [在庫]![在庫数]-[Forms]![出庫リスト]![出庫数の合計] WHERE (((在庫.品番)=[Forms]![出庫リスト]![品番]))" うまくいきましたが、出庫履歴テーブルへの追加書き込みが良く分かりません。insert??ではないと思うのですが、 どうか アドバイスをお願いします。

  • データベースの質問です

    phpでサイト構築を考えておりますが、データベースをmysqlかpostgresか、マイクロソフトのSQLサーバのどちらが早いのか検討しています 一日のデータの件数を5万件入れて、そのデータをselect、insert、updateなどするときに mysqlかpostgresのマイクロソフトのSQLサーバのどちらが早いのか、良くわからなくて、皆様の知恵をお借りしたいです。 シンプルに、データの件数での処理の速さで考えております。 例えば、10万件のデータをinsertする 10万件のデータを、updateする 10万件のデータを、登録する あと、どの程度データを各データベースに入れると重くなってしまうものなのか・・・ 宜しくお願い致します

  • データベースの容量計算

    単純に1000バイトのデータが100万件の場合1GBなのですが、データベースに格納した際の計算方法はどのように計算すればよいでしょうか。 お知りの方よろしくお願いします。

  • ご教授お願い致します。

    ご教授お願い致します。 MicrosoftSQL2008で テーブルに在庫データと受払データの2種類があります。 在庫データは受払データを1行にまとめた情報で 年月で管理しています。 また、受払データはその詳細で年月日で管理しています。 質問は、この二つのテーブルをビューで1つに結合したいのですが 結合に在庫データの年月と受払データの年月日だと特定の日付のみしか 結合されません。 よって、方法を教えて頂ければ幸いです。 尚、例を下に記述します。 ■在庫データ 年月    品番 入庫数 出庫数 2010/06/01 A   3    1 2010/07/01 A 0 1 ■受払データ 伝票No. 日付  品番 入出庫区分 数量 1 2010/06/02 A 入庫    1 2 2010/06/03 A 入庫    2 3 2010/06/04 A 出庫    1 4 2010/07/02 A 出庫    1    結合は在庫データの2010/06/01だと受払データの  伝票No.が1から3まで  2010/07/01だと伝票No.4です。

  • SQLで、同じ値が何回連続するか、カウントする方法

    1年間の天気のデータベースがあるとします。 7月のデータを抽出し日付でソート、ある日付から、その日と同じ天気が何日続いたかを、SQLで簡単に調べる方法はあるでしょうか? データベースは、ACCESSのmdb、VBでJETデータベースエンジンを使用していますので、高度なSQL文は使用できないかもしれません。 よろしくお願いします。

  • access2000です。

    こんばんは。 いつもお世話になります。 アクセスで困っております。教えてください。 テ-ブル1(原料マスター) コード  品名 100    A 200     B 300    C テーブル2(入出庫明細) 日付  コード  入庫  出庫 4/1   100    10 4/2   100          10 4/2      200    10 テーブル3(月初在庫) コード  在庫 100    10 200    100 300      50 クエリー1(入出庫の月合計) テーブル2より コード  入庫合計  出庫合計 100     10     10 200     10 クエリー2(在庫の算出) テーブル1の全コードを使用 コード  月初在庫 入庫合計 出庫合計 現在庫 100      10       10       10        10 200      100        10 300      50 となり、入庫や出庫にデータが入っていないコードのものは、現在庫が表示されません。入庫の合計は集計を合計としているだけです。現在庫はフィールドにビルドでテーブル1の月初在庫+入庫合計-出庫合計と入力しており、集計は演算としています。データの入っていないところを無視させて現在庫を全て表示させたいのです。 宜しくお願い致します。

  • SQL文で在庫推移を得る。

    初期在庫数と入庫数と出庫数で現在の在庫数を得るSQL文を作りたいです。例としては下記のような感じです。 単純なようですが、以外と難しく、すでに作成されていれば教えて頂きたいと思います。ヒントになることでも構いません。 ここでは在庫と言っておりますが、キャッシュフロー全てに通用すると思います。ご興味のある方、挑戦してみてはいかがでしょう。 P.S.昨日SQL文の質問をさせて頂きました。今日もSQLで悩んでおります。 例: 日付|初期在庫|入庫|出庫|在庫 1/1 |10   |  |  |10 1/2 |    |3  |  |13 1/3 |    |6  |3  |16 1/4 |    |9  |10 |15 1/5 |    |1  |  |16 1/6 |    |  |10 |6 1/7 |    |  |1  |5