平成21年春期 午後問6(データベース)

たるたるさん  
(No.1)
お疲れ様です。
  解説を読んでも分かりそうだけど本質を理解できていないので質問させていただきます。

Q1.設問2(e)
  解説文に「同一の注文に単品商品の ~ が現れることになります。」とありました。

  そのようなこと起こり得る理由が分かりません。

Q2.設問2(f)
  解説に「そのセット商品を構成する子商品について展開しなければならない~」とありました。

  これについて本文に「単品で商品を購入しようとしている顧客に、その商品が含まれるセット商品を案内する」とあるので逆な気がするのですが、何故解説のようになるのでしょうか。
  
以上です。
お忙しいと存じますが、ご回答いただけますと幸いです。
2024.02.24 06:53
GinSanaさん 
AP プラチナマイスター
(No.2)
Q1.設問2(e)
例えば、"スコップ1個、赤土5個"というセット商品の注文があったとして、同一の注文に単品商品の"スコップ1個"が含まれていた場合には、上下のクエリともに"スコップ1個"という行が現れることになります。

注文明細で商品を結合して、セットフラグが0のに絞ると単品販売の注文に絞られ、商品番号と数量だけの列ができる。
空欄eのあとのクエリで
注文明細で商品を結合して、セットフラグが1のに絞るとセット販売の注文に絞られる。さらにセット商品のセット商品番号で結合して、セット商品の子商品の数だけ注文明細のレコードが増幅され、子商品番号と数量の列ができる。
で、子商品番号と数量の列の値の組み合わせと、商品番号と数量だけの列の値の組み合わせがたまたま一致すると、unionの場合行の重複がなくなるので行数が減ってしまう。

スコップ1個、赤土5個のセット+単品のスコップ1個の例だと、
上のクエリで
スコップ  1
下のクエリで
スコップ  1
赤土  5
でunion allなら
スコップ  1
スコップ  1
赤土  5
だがunionなのでdistinctがかかり
スコップ  1
赤土  5
になる。
2024.02.24 18:38
GinSanaさん 
AP プラチナマイスター
(No.3)
Q2.設問2(f)
  解説に「そのセット商品を構成する子商品について展開しなければならない~」とありました。

  これについて本文に「単品で商品を購入しようとしている顧客に、その商品が含まれるセット商品を案内する」とあるので逆な気がするのですが、何故解説のようになるのでしょうか。

新システムにおいて,指定された注文番号の出荷指示を出力するSQL文を図4に示す、とあるので、案内とかのくだりはそもそも関係なく、図4のクエリで
純粋に何の商品が何件必要なのかを洗い出す必要があるだけです。
2024.02.24 21:24
たるたるさん  
(No.4)
GinSanaさん、お忙しい中ご回答ありがとうございます!

1.(e)について
  理解できました、ありがとうございます!

2.(f)について
  理解できました、ありがとうございます!
2024.02.25 13:50

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop