teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

最終イメージと提示情報の修正、引当可能数・引当待ち数・積送中数の仕様の説明を追加

2022/02/13 06:00

投稿

ken_sho
ken_sho

スコア15

title CHANGED
File without changes
body CHANGED
@@ -3,13 +3,30 @@
3
3
 
4
4
  最終的なイメージは以下の通りです
5
5
  ※商品コードで絞り込みを行います
6
+
7
+ 例)品番「ABC-12345」で絞り込んだ場合
6
8
  |倉庫コード|品番(親品番)|在庫数|引当可能数|引当待ち数|積送中数|
7
9
  |:--|:--:|:--:|:--:|:--:|--:|
8
- |11|ABC-12345|1|0|0|0|
10
+ |11|ABC-12345|0|0|0|0|
11
+ |12|ABC-12345|2|2|0|0|
12
+ |13|ABC-12345|1|1|0|0|
9
- |12|DEF-67891|5|5|0|0|
13
+ |11|DEF-67891|5|5|0|0|
14
+ |12|DEF-67891|0|0|0|0|
15
+ |13|DEF-67891|0|0|0|0|
16
+ |11|XYZ-43210|0|0|0|0|
17
+ |12|XYZ-43210|0|0|0|0|
10
- |13|XYZ-43210|3|1|0|0|
18
+ |13|XYZ-43210|3|0|0|0|
11
19
  ・・・
12
20
 
21
+ 例)在庫数、引当可能数の導き出し方
22
+ **倉庫コード:11**は構成に必要な[b-001][c-001]の在庫がないため、最小値[0]となり最終的な在庫数は[0]
23
+ **倉庫コード:12**は構成に必要な在庫が揃っておりそれぞれ、[a-001]が[8]、[b-002]が[5]、[c-001]が[10]で最小値は[5]
24
+ 最小値[5]の[b-001]の構成数は[2] 割ると[2.5]
25
+ 少数切り捨てのため最終的な在庫数は[2]
26
+ **倉庫コード:13**は構成に必要な在庫が揃っておりそれぞれ、[a-001]が[6]、[b-002]が[3]、[c-001]が[5]で最小値は[3]
27
+ 最小値[3]の[b-001]の構成数は[2] 割ると[1.5]
28
+ 少数切り捨てのため最終的な在庫数は[1]
29
+
13
30
  上記結果を導くために以下のテーブルを使用します
14
31
  ※必要であると思われるカラムのみ表示してあります
15
32
 
@@ -19,7 +36,7 @@
19
36
  |ABC-12345|a-001|1|
20
37
  |ABC-12345|b-001|2|
21
38
  |ABC-12345|c-001|1|
22
- |DEF-67891|d-001|4|
39
+ |DEF-67891|d-001|2|
23
40
  |DEF-67891|e-001|1|
24
41
  |DEF-67891|f-001|2|
25
42
  |XYZ-43210|x-001|2|
@@ -30,13 +47,27 @@
30
47
  2.在庫マスタ
31
48
  |倉庫コード(ZASKCD)|品番(ZAHNCD)|在庫数(ZAZKSU)|引当可能数(ZAHHSU)|引当待ち数(ZAHMSU)|積送中数(ZASKSS)|
32
49
  |:--|:--:|:--:|:--:|:--:|--:|
33
- |11|a-001|1|0|0|0|
50
+ |11|a-001|10|10|0|0|
34
- |12|a-001|1|0|0|0|
51
+ |12|a-001|8|8|0|0|
35
- |13|a-001|1|0|0|0|
52
+ |13|a-001|6|6|0|0|
36
- |12|b-001|2|0|0|0|
53
+ |12|b-001|5|5|0|0|
37
- |13|b-001|2|0|0|0|
54
+ |13|b-001|3|3|0|0|
38
- |12|c-001|1|0|0|0|
55
+ |12|c-001|10|10|0|0|
39
- |13|c-001|1|0|0|0|
56
+ |13|c-001|5|5|0|0|
57
+ |11|d-001|10|10|0|0|
58
+ |12|d-001|8|8|0|0|
59
+ |13|d-001|6|6|0|0|
60
+ |11|e-001|10|10|0|0|
61
+ |12|e-001|8|8|0|0|
62
+ |13|e-001|6|6|0|0|
63
+ |11|f-001|10|10|0|0|
64
+ |11|x-001|10|10|0|0|
65
+ |12|x-001|8|8|0|0|
66
+ |13|x-001|6|6|0|0|
67
+ |12|y-001|8|8|0|0|
68
+ |13|y-001|6|6|0|0|
69
+ |11|z-001|10|10|0|0|
70
+ |13|z-001|6|6|0|0|
40
71
  ・・・
41
72
 
42
73
  [セット品構成マスタ]の[子品番(SSKHCD)]と[在庫マスタ]の[品番(ZAHNCD)]を紐づけます。
@@ -53,6 +84,7 @@
53
84
  例:拠点[12]は構成の[a-001][b-001][c-001]を有しており在庫数の最小値は[1]
54
85
  構成数を[1]で割る→1
55
86
  ※割った後の値が少数の場合は切り捨て
87
+ ※引当可能数も同じように構成数で割ります
56
88
  ※書いていて気が付いたのですが、在庫数が同数で構成数が違う場合最終的にどのように算出されるのか。。。
57
89
   SQLの仕様で抽出時の先頭レコードが採用される?(そうすると意図しない出力のされ方をされるのか?という疑問です)
58
90
 
@@ -60,6 +92,10 @@
60
92
  抜けがあることで在庫数があるように見えてしまう恐れがあるため、
61
93
  構成品は全て揃っているうえで在庫数の算出を行う必要があります。
62
94
 
95
+ ・引当可能数・・・在庫数に対して出荷可能な数値
96
+ ・引当待ち数・・・受注後に在庫引当を待っている数値
97
+ ・積送中数・・・出荷中の数値
98
+
63
99
  以上になります。
64
100
  これを1つのSQLで表現できるものなのでしょうか?
65
101
  よろしくお願いいたします。