初級システムアドミニストレータ試験情報初級シスアド試験の既出問題平成11年度秋期試験メニュー>問題と解説
 

初級シスアド 平成11年度秋期試験 問題(午後問7)


 
問7 販売管理データベースに関する記述を読んで,設問1〜4に答えよ。
 
 X社の営業会議において,取扱い商品の見直しや単価改定などを行うことが決まり,上司の指示に基づき,Y君は,次回開催される営業会議で必要な資料を,販売管理データベースを活用して作成することになった。
 X社の販売管理システムに収容されているデータは,販売管理データベースとしてデータベース化(図1にデータ構造を示す)されている。
 
販売表
販売番号 販売日 顧客コード 納入希望日 納入日
 
販売明細表
販売番号 行番 商品コード 販売数量 販売単価 販売金額
 
商品在庫表
商品コード 商品名 商品分類 在庫数量 仕入単価 販売開始日 販売終了日
 
図1 販売管理データベースの構造
 
 商品在庫表の販売終了日には,その商品の販売をやめた日付けが設定されているが,販売中の商品については,NULL値が設定されている。
 また,商品分類には,類似している商品をひとくくりに把握するためのコードが設定されている。
 Y君は,次の作業を行うよう,上司から指示を受けた。
作業1:  1999年4月以降販売を開始し,継続して販売している商品については,商品ごとに販売金額,販売数量,利益率を求める。
 利益率を求める計算式は,“利益率=利益金額/販売金額”とする。
作業2:  1998年10月以前に販売を開始し,継続して販売している商品については,1998年10月〜1999年9月の1年間の商品ごとの販売金額合計を基に,商品ごとにランク付けを行う。ランク付けは,販売金額の合計が多い商品から少ない順に並べ,販売金額合計の累計構成比が,70%未満の商品はランクA,70%以上90%未満の商品はランクB,90%以上の商品はランクCとする。
作業3:  1997年10月以前に販売を開始し,継続して販売している商品については,商品分類ごとにランク付けを行い,その推移状況を求める。
 手順は次のとおりである。
(1) 1997年10月〜1998年9月と1998年10月〜1999年9月に分けて,それぞれ商品分類ごとの販売金額合計を基に,商品分類ごとにランク付けを行う。ランク付けは,作業2と同様にする。
(2) 1997年10月〜1998年9月のランク付けした結果と1998年10月〜1999年9月のランク付けした結果を基に,図2で示すランク推移表を作る。
(3) ランク推移表を基に,検討資料を作成するためのデータを抽出する。
 
商品分類 販売金額
合計1
ランク1 販売金額
合計2
ランク2 ランク推移状況
 
図2 ランク推移表の構造
 
 なお,ランク推移表の販売金額合計1とランク1には,1997年10月〜1998年9月の販売金額合計とランクを設定し,販売金額合計2とランク2には,1998年10月〜1999年9月の販売金額合計とランクを設定する。
 また,ランク推移状況には,状況ステータスとして,ランクが上がったものに'↑',ランクが変わらないものに'→',ランクが下がったものに'↓'を設定する。
 

 
設問1 次に示すSQL文は,作業1の商品ごとの販売金額,販売数量,利益率を求めるものである。
 SQL文の[  ]に入れる適切な字句を,解答群の中から選べ。
 
SELECT 商品在庫表.商品コード,商品在庫表.商品名,
[ a ],[ b ],([ a ]−[ b ]*[ c ])/[ a ]
FROM 販売表,販売明細表,商品在庫表
WHERE 販売表.販売番号 = 販売明細表.販売番号
AND 商品在庫表.販売開始日 >= '1999-04-01'
AND 商品在庫表.販売終了日 IS NULL
AND 販売明細表.商品コード = 商品在庫表.商品コード
GROUP BY 商品在庫表.商品コード,商品在庫表.商品名,商品在庫表.仕入単価
 
解答群
ア SUM(仕入単価)  イ SUM(在庫数量)  ウ SUM(販売金額)
エ SUM(販売数量)  オ SUM(販売単価)  カ 仕入単価
キ 在庫数量     ク 販売金額    ケ 販売数量
コ 販売単価
 

設問1の正解例と解説へ
 
設問2 作業2を行う上で全商品をランク付けの対象にするためには,販売実績がない商品があった場合のことを考慮しておく必要がある。Y君は,あらかじめ,販売実績がない商品を抽出するSQL文を考えておくことにした。
 次に示すSQL文は,販売実績がない商品を抽出するためのものである。SQL文の[  ]に入れる適切な字句を,解答群の中から選べ。
 
SELECT 商品コード,商品名,0 AS 販売金額 FROM 商品在庫表
WHERE [ d ] AND 販売終了日 IS NULL
AND 商品コード [ e ](SELECT DISTINCT 商品コード
   FROM 販売表,販売明細表
   WHERE 販売表.販売番号 = 販売明細表.販売番号 AND [ f ])
 
d,fに関する解答群
ア 販売開始日 BETWEEN '1998-10-01' AND '1999-09-30'
イ 販売開始日 < '1998-10-01'
ウ 販売開始日 < '1999-09-30'
エ 販売開始日 > '1998-10-01'
オ 販売開始日 > '1999-09-30'
カ 販売日 BETWEEN '1998-10-01' AND '1999-09-30'
キ 販売日 < '1998-10-01'
ク 販売日 < '1999-09-30'
ケ 販売日 > '1998-10-01'
コ 販売日 > '1999-09-30'
 
eに関する解答群
ア IN        イ NOT IN
 

設問2の正解例と解説へ
 
設問3 作業3−(2)のランク推移表を作成する作業として,ランク推移状況に状況ステータスを設定する。
 次に示すSQL文は,ランク推移表のランク推移状況に状況ステータスを設定するためのものである。表は,SQL文中の下線の状況ステータスと条件式の一覧である。表中の[  ]に入れる適切な字句を,解答群の中から選べ。
 
UPDATE ランク推移表 SET ランク推移状況 = 状況ステータス WHERE 条件式
 
表 ランク推移状況の状況ステータスと条件式
 
状況ステータス 条件式
'↑' [ g ]OR[ h ]
'→' ランク1=ランク2
'↓' [ i ]OR[ j ]
 
gに関する解答群
ア ランク1 = 'C' AND ランク2 = 'A'
イ ランク1 = 'C' AND ランク2 = 'B'
ウ ランク1 = 'C' AND ランク2 = 'C'
エ ランク1 = 'C' AND ランク2 <> 'A'
オ ランク1 = 'C' AND ランク2 <> 'B'
カ ランク1 = 'C' AND ランク2 <> 'C'
 
h,iに関する解答群 
ア ランク1 = 'B' AND ランク2 = 'A'
イ ランク1 = 'B' AND ランク2 = 'B'
ウ ランク1 = 'B' AND ランク2 = 'C'
エ ランク1 = 'B' AND ランク2 <> 'A'
オ ランク1 = 'B' AND ランク2 <> 'B'
カ ランク1 = 'B' AND ランク2 <> 'C'
 
jに関する解答群
ア ランク1 = 'A' AND ランク2 = 'A'
イ ランク1 = 'A' AND ランク2 = 'B'
ウ ランク1 = 'A' AND ランク2 = 'C'
エ ランク1 = 'A' AND ランク2 <> 'A'
オ ランク1 = 'A' AND ランク2 <> 'B'
カ ランク1 = 'A' AND ランク2 <> 'C'
 

設問3の正解例と解説へ
 
設問4 次に示すSQL文は,作業3−(3)の作業として,ランク別商品分類一覧表を作成するためのデータを抽出するものである。
 SQL文を読んで,抽出結果の順序に関する記述の[  ]に入れる適切な字句を,解答群の中から選べ。解答は重複して選んでもよい。
 なお,ランク推移状況に入力した状況ステータスを昇順に整列させると,'↑','→','↓'の順となる。
 
SELECT ランク2,商品分類,ランク推移状況,ランク1,販売金額合計2
FROM ランク推移表
ORDER BY ランク2 ASC,ランク推移状況 ASC,ランク1 DESC
 
抽出結果の順序に関する記述
(1) 抽出結果の順序は,1998年10月〜1999年9月のランクが[ k ]〜[ l ]の順となっている。
(2) 同一ランクの場合は,ランクが[ m ]商品を先に抽出し,次にランクが変わらない商品,そしてランクが[ n ]商品の順に抽出している。
(3) さらに,ランクが上がった商品について,[ o ]からランクAに上がった商品は,[ p ]からランクAに上がった商品より先に抽出している。
 
k,l,o,pに関する解答群
ア ランクA    イ ランクB   ウ ランクC
 
m,nに関する解答群
ア 上がった   イ 変わらない  ウ 下がった
 

設問4の正解例と解説へ
 
メニューへ戻る