HOME»データベーススペシャリスト掲示板»R5 午後2 問1 設問3 (2) (a)
投稿する

R5 午後2 問1 設問3 (2) (a) [0961]

 waspさん(No.1) 
問題にある「基準行と」いうのが何のテーブルに対して言っているのかが特定できず、そのため模範解答の意味がよくわかりませんでした。

模範解答はこう書かれています。
「入荷年月日又は出荷年月日、登録TSの昇順に並べた先頭の行であること」
「受払日付、登録順が最も古い入出荷であること」
何の集合に対して並べ替えて条件を取得しているのか、その条件をキーとして何のテーブルを検索して基準行を特定しているのか、わかりません。

係数格納の処理としてはこう考えているのですが、合っているでしょうか?
1. 処理WTの行を読む。
2. 処理WT.拠点#、処理WT.出荷#をキーとして出荷テーブルを検索する。
3. 赤伝/黒伝の場合、出荷テーブルの訂正元出荷#から、さらに出荷元となったレコードを特定する。(これが基準行の候補となる)
4. 受払年月、拠点#、商品#ごとに基準行の候補のうち、一番出荷年月日のレコードを基準行とする。
5. 基準行に対応する受払明細を登録し、そこから先の受払明細を全て削除して再作成する。

でもこの処理だと赤伝黒伝の発生前の処理WTにある行が処理されない気もします。
2025.09.23 15:18
 waspさん(No.2) 
模範解答に入荷年月や受払日付と書いてあるのが更に私を混乱させる。
赤黒区分は出荷テーブルにあるし、適用区分は受払明細にある。
なんで入荷年月が回答に含まれているんだろう?
入荷区分という項目があるが、これは赤黒区分とは関係ないはず。
2025.09.23 15:20
ぶどうさん(No.3) 
DB ブロンズマイスター
 初見なので間違えがあれば、誰か訂正して下さい。
 赤黒(出荷)が複数あったら、1番古い行を基準にする。入荷年月日は関係ない。それはそうです。
赤黒が複数ある場合に、洗替えの起点となる行を選択する条件
 先月や先々月の赤黒は洗替えになるんでしょうけれど、先週や昨日の赤黒(出荷)と入荷を今日処理する場合、洗替え不要で入荷年月日を含めて1番古い行を基準にするんじゃないかしら?
 まるで、一休さんのとんちです。間違えがあるかもしれないので、参考書で確認して下さい。
2025.09.23 17:57
はちさん(No.4) 
> ぶどうさん
投稿者です。
回答ありがとうございます。
参考書には以下のような具体例が挙げられていました。

===========
・赤伝発生時
|  年月    | 受払年月日  |適用区分|数量|単価|備考
|
|2023-09|2023-09-01|前月繰越|50  |100|起点となる行
|
|2023-09|2023-09-03|入荷     |50  |  80|
|
|2023-09|2023-09-05|出荷     |30  |100|
|
|2023-09|2023-09-10|入荷     |50  |  90|
|
|2023-09|2023-09-15|出荷     |20  |100|計算が合わないため洗変えを行う     |
|2023-09|2023-09-15|出荷     |30  |  80|計算が合わないため洗変えを行う     |
|2023-09|2023-09-05|赤伝     |30  |100|
|

・洗変え後
|  年月    | 受払年月日  |適用区分|数量|単価|備考
|
|2023-09|2023-09-01|前月繰越|50  |100|起点となる行
|
|2023-09|2023-09-03|入荷     |50  |  80|
|
|2023-09|2023-09-05|出荷     |30  |100|
|
|2023-09|2023-09-05|赤伝     |30  |100|
|
|2023-09|2023-09-10|入荷     |50  |  90|
|
|2023-09|2023-09-15|出荷     |20  |100|洗変えを行った後
|
|2023-09|2023-09-15|出荷     |30  |100|洗変えを行った後
|

・説明
計数格納処理について、処理WTに、同じ年月、拠点#、商品#の赤伝黒伝が複数ある場合に、洗い変えの起点となる行を選択する条件を答える。
洗い変えは「同じ年月、拠点#、商品#で、その受払よりも先の行を全て削除した上で、入出荷の明細から行を再作成する」とあるので、計数格納処理において、同じ年月、拠点#、商品#ごとに最初に登録する行が起点となる行である。
===========

でも問題文は「赤伝黒伝の発生時には、同じ年月、拠点#、商品#で、その受払よりも先の行を全て削除した上で、入出荷の明細から行を再作成する」と書いてあるんです。
私はこの解説の解釈はおかしいと思っていて、普通に読んだら「その受払よりも先の行を全て削除した上で」の「その」は「赤伝黒伝」を指すと思うんです。

他の解説では私と同じ解釈をしているものもありました。
ただ、私には模範解答と解説の行間を埋めることができず何故そうなるのかわからなかった。
2025.09.23 20:36
はちさん(No.5) 
五月雨の投稿で申し訳ありません。
まだ腑に落ちない点がありました。

仮に「同じ年月、拠点#、商品#ごとに最初に登録する行」を起点とする場合、赤伝黒伝が1件であろうと複数あろうと起点行は変わらないはずです。
そうすると問題文の「同じ年月、拠点#、商品#の赤伝黒伝が複数ある場合に」という記載は完全にノイズになってしまう。

起点となる行は赤伝黒伝の訂正元となる出荷で、赤伝黒伝が複数あった場合の起点となる行は出荷日時なり登録TSが一番古いもの、が自然だと考えたのですがいかがでしょうか。
2025.09.23 21:18
ぶどうさん(No.6) 
DB ブロンズマイスター
> 起点となる行は赤伝黒伝の訂正元となる出荷で、赤伝黒伝が複数あった場合の起点となる行は出荷日時なり登録TSが一番古いもの、が自然だと考えたのですがいかがでしょうか。
 大筋の考え方はそれでいいと思います。だいたいは赤伝黒伝の元伝票になるでしょう。
 一応確認ですけれど、次のような場合もある事に異論はあるかしら。例えば、先週の月曜日に入荷し、火曜日に出荷され、水曜日に赤伝で火曜日の出荷を取り消し、・・・。これを貯めておき、今日処理する場合、先週月曜日の入荷伝票が起点になる。
2025.09.24 00:15
はちさん(No.7) 
> ぶどうさん
丁寧な説明ありがとうございます。

> 一応確認ですけれど、次のような場合もある事に異論はあるかしら。例えば、先週の月曜日に入荷し、火曜日に出荷され、水曜日に赤伝で火曜日の出荷を取り消し、・・・。これを貯めておき、今日処理する場合、先週月曜日の入荷伝票が起点になる。
起点となる行までは1行ずつ受払明細を作って、起点から先の行は受払明細を削除後に再作成...なら納得いくのですが問題文にはそう書いてないので、ぶどうさんのおっしゃる通りだと思います。

この問題は少々説明が不足しているような感じです。
(この資格試験ではしばしばあることですが。)
でも自分の考えにある程度自信は持てました、丁寧な対応ありがとうございます。
2025.09.24 10:19
返信投稿用フォーム
お名前
顔アイコン

本文(コミュニティガイドライン⇱を順守して適切な投稿を心がけましょう)
🔐投稿削除用のパスワード(任意)
投稿プレビュー
※SQL文は全角文字で記載してください。
※宣伝や迷惑行為を防止するため、当サイト、姉妹サイト、IPAサイト以外のURLを含む文章の投稿はできません。
投稿記事削除用フォーム
投稿No. パスワード 
© 2016- データベーススペシャリストドットコム All Rights Reserved.

Pagetop