HOME»基本情報技術者試験掲示板»平成24年秋期試験午後問題 問2設問4
投稿する
平成24年秋期試験午後問題 問2設問4 [4304]
ももさん(No.1)
平成24年秋期試験午後問題 問2データベースの設問4の回答がなぜイなのかがわかりません。
私はアと回答しました。
品目が文具の取引先ごとに表をまとめたため、そのレコード数が10以上という条件をHAVINGに指定するではダメなのでしょうか?
わざわざHAVING COUNT(DISTINCT 発注表.発注コード) >= 10というように発注コードを指定して更にdistinctをつけるのはなぜでしょうか?
どなたかご教示いただけると幸いです。
どうぞよろしくお願いいたします。
私はアと回答しました。
品目が文具の取引先ごとに表をまとめたため、そのレコード数が10以上という条件をHAVINGに指定するではダメなのでしょうか?
わざわざHAVING COUNT(DISTINCT 発注表.発注コード) >= 10というように発注コードを指定して更にdistinctをつけるのはなぜでしょうか?
どなたかご教示いただけると幸いです。
どうぞよろしくお願いいたします。
2022.05.24 07:00
trgl1985さん(No.2)
取引先コード毎にGROUP BYして、HAVING文は後ろの発注コードに使っています。だから、発注コードの重複を削除しなければいけない。
2022.05.24 12:28
ももさん(No.3)
trgl1985さん
ご回答ありがとうございます
後ろの発注コードとは何でしょうか?
また、なぜ重複してはいけないのでしょうか?
ご回答ありがとうございます
後ろの発注コードとは何でしょうか?
また、なぜ重複してはいけないのでしょうか?
2022.05.24 22:00
飯野さん(No.4)
WHERE
発注表.発注コード=明細表.発注コード(文具の品目コード(S01)にあたる商品コードが載ってるやつ)
ってやるだけだと、1つの発注のなかで文具をいくつか買ってたとき、
明細表の行と同じだけ出てしまうのではないでしょうか。
発注表の発注コードと
明細表の発注コードで
くっつけた表にしてね
ってだけなので、行が多いほうに揃っちゃう。
だからそのまま数えると、
1つの発注でいろんな文具10個買っただけの取引先まで
「10個あったよ!」って数えちゃう。
なのでDISTINCT 発注表.発注コード・・・発注コードのカブリは除いて数えてね
になるんではないかと思います。
発注表.発注コード=明細表.発注コード(文具の品目コード(S01)にあたる商品コードが載ってるやつ)
ってやるだけだと、1つの発注のなかで文具をいくつか買ってたとき、
明細表の行と同じだけ出てしまうのではないでしょうか。
発注表の発注コードと
明細表の発注コードで
くっつけた表にしてね
ってだけなので、行が多いほうに揃っちゃう。
だからそのまま数えると、
1つの発注でいろんな文具10個買っただけの取引先まで
「10個あったよ!」って数えちゃう。
なのでDISTINCT 発注表.発注コード・・・発注コードのカブリは除いて数えてね
になるんではないかと思います。
2022.05.26 22:01