平成29年春期試験問題 午前Ⅱ 問10
正解 ア問題へ
分野:テクノロジ系
中分類:データベース
小分類:データ操作
中分類:データベース
小分類:データ操作
広告
解説
最初に設問の定義により導出されるビュー"商品別出荷実績"の構成を考えていきます。
まずSQL文の下記部分では、各表の商品コードを結合キーとして左外部結合を指示しています。
以上より「ア」が正解です。
まずSQL文の下記部分では、各表の商品コードを結合キーとして左外部結合を指示しています。
FROM 月末商品在庫 LEFT OUTER JOIN 当月商品出荷実績
ON 月末商品在庫.商品コード = 当月商品出荷実績.商品コード
左外部結合とは、基準となる左表の行を全て抽出し、右表からは左表の行と自然結合できる行のみを抽出する結合です。左表の行と結合する行が右表に無い場合は右表の列の値をNULLとして結合します。したがって上記のSQLで生成される中間表は下図の左表のようになります。さらにGROUP BY句で、商品コード、在庫数ごとにグループ化すると以下のようになります。ここからSELECT文で商品コード、SUM(出荷数)、在庫数を抜き出したものがビュー"商品別出荷実績"です。ビューに対するSQL文は、ビューの行のうち出荷実績数が300以下のレコードを抽出し、その月末在庫数の合計を表示するものです。NULL値は「IS NULL演算子」か「IN NOT NULL演算子」でしか比較ができないため、ビュー"商品別出荷実績"のうちWHERE句が真を返すのは商品コードS001とS003の2行だけになります。S001とS003の月末在庫数は、それぞれ100,300なので、SUM()は2つの値を足し合わせた400を返します。ON 月末商品在庫.商品コード = 当月商品出荷実績.商品コード
以上より「ア」が正解です。
広告