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 平均会計額
この場合、明細表と会計表が結合されていないので、不要なのでしょうか・・・。
解答を見ても気になっているポイントが説明されておらず
納得できないのでご質問させていただきました。
宜しくお願いいたします。
設問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は不要です。
図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