HOME»基本情報技術者試験掲示板»H24春午後 問2データベースについて
投稿する

H24春午後 問2データベースについて [0889]

 みみさん(No.1) 
H24春午後 問2データベースについて、
設問4  hの正答は「イ」となっていますが、
そもそも発注表.発注コードは主キーのため
重複しない(DISTINCTは必要ない)のではないでしょうか。

WHERE句で以下⭐︎マークの行にて明細表と商品表を結合してるため、
図1でいうと商品コードが2件結果として返るのでしょうか?
発注表.発注コード = 明細表.発注コード AND
明細表.商品コード = 商品表.商品コード AND ⭐︎
商品表.品目コード = 品目表.品目コード AND 
品目表.品目名 = '文具'

また、H25年春期午後 問3設問2 Cの場合、
ウの最終行を以下の通り変更したとするとDISTINCTは必要ですか?
変更前(実際の選択肢)
  :AVG(売上金額 / 延べ来客数) AS 平均会計額  
変更後
  :AVG(会計表.会計金額) AS 平均会計額

この場合、明細表と会計表が結合されていないので、不要なのでしょうか・・・。

解答を見ても気になっているポイントが説明されておらず
納得できないのでご質問させていただきました。

宜しくお願いいたします。

2017.09.17 00:03
通りすがりの者さん(No.2) 
まず、タイトルの「H24春」は「24秋」ですね。

図1において
WHERE 発注表.発注コード = 明細表.発注コード
による発注表と明細表の結合によって、以下の表が得られます。

発注表.      発注表.              明細表.    明細表.
発注先コード  取引先コード  ・・・  発注コード  商品コード  ・・・

120001      XK001                    120001      A0001
120001      XK001                    120001      A0027

この表において、もし、A0001とA0027がともに'文具'の場合、文具の発注は1回と数えなければならないので、発注表.発注コードが同じ行のものは1行とするために、DISTINCTを付ける必要があります。

次に、H25年春期午後 問3設問2 Cです。

店舗表と会計表を店舗コードで結合し、来店日を絞った行数が、延べ来客数そのものですから、エが正解です。

また、「ウの最終行を以下の通り変更したとするとDISTINCTは必要ですか?・・・・・」については、変更後の最終行はエの最終行と同じですので、DISTINCTは不要です。
2017.09.17 13:19
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop