
初期在庫数と入庫数と出庫数で現在の在庫数を得る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
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ご質問を、例えば次のように書き換えることは可能でしょうか?
>>>
次のような2つの表SとTがあります。ココから、各日付の最終の在庫数のリストRを、単一のSQLで取り出すことはできますか?ただし、初期在庫は固定値2です。
表T: 表S:
日付|入庫 日付|出庫
--+-- --+--
11|12 12|11
13|14 13|15
13|11 14|11
結果R:
日付|在庫
--+--
11|14
12| 3
13|13
14| 2
アクセス98です。
<<<
つまり、どのような表(とそれらの関係)から、そのような結果を得たいのかが分からないので、補足要求しました。
No.2
- 回答日時:
<AccessVBAなどなら簡単。
SQLでは難しい処理もある>私はSQLの勉強が充分ではないのですが、出会って以来長いのと、日頃
考えていることを混ぜて、独断と偏見で意見を述べます。むしろ私の下記文章に専門家のコメントが欲しいくらいです。何か得るところあれば、幸です。子供の質問が案外答えるのに難しいように、私が色々なことを習い始めた時に、こんなことは良くあるケース、出来る方法があって当たり前、と思う場面が多々ありました。しかし低レベルから進歩するコンピュターソフトは、なかなかそこまで進歩してないことが多いし、方法があっても、学習が相当進んで初めて、その方法が使えることを学ぶと言うケースが多いです。
この問題もそれらに似ているのだと思います。もう少し勉強されてから考えられてはと思います。
と言うのはSQLは74年ごろIBMで生まれて、’80年代まではIBM(大型機が多い)のユーザーに使われ、SQLのQがクエリのQであることから判るように、問合せ条件検索用であり、テーブル-->テーブルの写像であり、テーブル->レコードではなかったと思います。また作る側のプログラム言語と言うより、使う側に易しい操作言語として作られたようです(QBE)。結果は1操作でテーブルの形しか出て来ません。結果は見る・印刷するだけで、次ぎの処理のプログラムへ渡したくても、そこへ行けなかった。基礎にあるリレーショナルデータベース(DB2)にしても、大型システムでないとレスポンス時間が長く、使えないと聞いたことがありました。
一方、トランザクション処理の典型が在庫管理で、入出庫のたびに、SQL文とデータを入れるような処理形態は不便で、流行りません。在庫照会には適していますが。SQLを使わずに別言語(IMSなど)などでシステムが組まれていました。在庫管理者の部門の端末で、入出庫データを入れるものの、SQL文が使われていたとは言えないのです。
しかしSQL自身には良い面が多く、その後オフコン・パソコンの高機能化・普及に伴い、オラクルをはじめ、IBMもIBM以外も、新ニーズを取りこんだ改良・SQLの処理系を出してきて、色々な機能を追加し始めました。カーソル(マウスカーソルとは全く別)処理などです。検索結果を次ぎの処理に、1レコードずつ処理出来る仕組みなどです。動的SQLと言うのもあります。この辺は、処理系ごとに、出来たり出来なかったり、差が大きく出てきますので、マニュアルを読んで勉強する分野で、一般のSQL解説書には書きにくい部分です。
その後SQLの標準化の面でも機能が取りこまれています。
アクセスVBAのように、SQLを取りこんで、全体として便利になっている言語もあります。オラクルもそうでしょう。
在庫管理をするときにはマスター(現在=最終在庫数を持つ)と出庫・入庫
の記録・データであるトランザクションとは、テーブルを分けて持つ例が
多いと思います。
さて質問の例ですが、マスターデータとトランザクションデータが同じテーブル内に一緒になっています。そのため初等SQLでの回答が難しくなります。自分で問題を作ったのですか、本に載っていましたか。こう言う例はあまりないと思いますが。
学習が進んで将来、マスターテーブル(M)と入出庫テーブル(T)が別にあって、TでMを更新(=最終在庫数を書きかえる)するやり方を「SQLで」行う方法などを勉強してください。その時#1のご回答の式を当然使います。
UPDATE(更新)というのがありますが、標準では他のレコードのフィールドデータで(足し引きなどして)書きかえるようにはなっていません。
その外に、オンライン的に使うには、入出庫データが入ってきたとき、即座にSQL文が走る仕組みがある必要があります。普通の教科書的な本はそこまで述べていません。
http://www.rfs.jp/sitebuilder/sql/01/02.html
>ご興味のある方、挑戦してみてはいかがでしょう。
OKWEBは学校の先生が出す問題コーナーやクイズではないので、知ってて時間のある人は答えるでしょうし、挑戦する人はするでしょう。知っている人が答える建前なので、余分な気がします。
No.1
- 回答日時:
何を求めたいのか よくわからないのですが・・・。
ある時点までの在庫は、初期在庫+SUM(入庫)-SUM(出庫)
となると思います。
この在庫を更新したいのかな?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelの関数(FILTER関数)について教えてください 2 2023/07/31 16:11
- 運輸業・郵便業 ●(令和なのですが…) 今時、 (倉庫会社の在庫の)倉庫管理システムが、 “紙”(商品依頼書•注文書 2 2022/08/07 18:09
- 東北 こんにちは。私は現在、青森市に出張してます。 所で八戸市に本店があるあおい森信用金庫が青森市に何故支 3 2022/05/10 13:11
- メルカリ メルカリShopsを作るとメルカリで販売は楽になりますか メルカリとまったく変わりませんか? 2 2022/10/11 19:22
- その他(買い物・ショッピング) 大量に注文したら在庫切れになりました 3 2022/09/10 20:26
- ZOZOTOWN zozotownでniko and...というブランドのバッグを探してたんですけどなくて、ブラウザ版 2 2023/05/15 18:52
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Excel(エクセル) Excelで在庫表(クエリ、ピボット) 2 2022/04/11 17:11
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Excel(エクセル) エクセルで在庫表を作っています。 それぞれの表で、入庫、出庫、残高が表示される表を作っています。 任 9 2023/05/03 21:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBとアクセスでSQL文に変...
-
SQL同時実行違反
-
エクセルのテーブルを解除する...
-
ADO.NETで CREATE TABLE [dbo]....
-
VB.NET データセットのEXCELへ出力
-
博識な方、アバターページにつ...
-
リストボックスに複数列表示し...
-
各ブラウザで表示されるテーブ...
-
SQL文で在庫推移を得る。
-
複数のデータベースを検索したい
-
VS2005でC#、データセットをMDB...
-
パイソンでのプログラミングに...
-
Excel複数シートをaccessへ一括...
-
「テーブルに主キーがありませ...
-
重複したデータを見つけたいの...
-
ExcelVBAについて
-
DAOの作成単位について
-
[C#] DataGridViewでコンボボッ...
-
ホームページ制作のSEO対策でテ...
-
ACCESS2010 実行時エラー 2766
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
SQLを発行とは?クエリの作成と...
-
手動または分散トランザクショ...
-
VBとアクセスでSQL文に変...
-
AccessからExcelへエクスポート...
-
Accessで別mdbのテーブルをコピー
-
エクセルのテーブルを解除する...
-
CSVファイルのエクスポートでソ...
-
COBOLのINVALID KEYが理解でき...
-
ExcelVBAからAccessMDB内のテー...
-
ACCESS2010 実行時エラー 2766
-
.net 複数の主キーを設定する方法
-
ExcelからAccessのテーブルに書...
-
アクセステーブル、リンクとロ...
-
Access2007でアプリケーション...
-
他のMDBのテーブルに追加したい
-
DAOの作成単位について
-
Excel複数シートをaccessへ一括...
-
[C#] DataGridViewでコンボボッ...
-
リストボックスに複数列表示し...
おすすめ情報