システムアドミニストレータ
過去問題平成17年春(午後)
システムアドミニストレータ過去問題平成17年春(午後) 問6-設問1
 医薬品メーカであるP社のQ支店は,県内の医療施設を対象にした営業拠点である。Q支店の医薬情報担当者(Medical Representative。以下,MRという)は,担当している医療施設を月に1回以上訪問して,医薬品の情報提供と営業活動を行っているが,売上の増加には結びついていない。
 そこで,Q支店の総務課では,売上とMRの訪問頻度について,医療施設の規模を考慮に入れた分析を行って,MRの訪問活動に関する問題を調査することになった。図1に,P社の売上実績と訪問実績を管理しているデータベースの構造を示す。売上がなかった場合には,売上表へのデータ登録は行わない。

支店表
支店番号 支店名称
MR表
MR番号 MR氏名 支店番号
医療施設表
医療施設番号 医療施設名称 病床数 MR番号
売上表
医療施設番号 売上年 売上月 売上金額
訪問表
訪問番号 医療施設番号 訪問年 訪問月 訪問日 MR番号 訪問詳細
 注 下線は,主キーを表す。
図1 売上実績と訪問実績を管理しているデータベースの構造

設問1 分析に必要なデータの出力に関する次の記述中の      に入れる適切な字句を,解答群の中から選べ。
 
 総務課のS君は,医療施設の規模の指標として病床数を用いることにし,Q支店が担当している医療施設ごとに,病床数と,2004年の売上及び訪問回数を出力する手順を,次のように考えた。ここで,Q支店の支店番号は,“110”とする。
 
(1)  次のSQL文で得られる結果表を,中間表1とする。
 
SELECT 医療施設番号,  a   AS 売上合計
  FROM 売上表
  WHERE 売上年 = '2004'
  GROUP BY 医療施設番号
 
(2)  次のSQL文で得られる結果表を,中間表2とする。
 
SELECT 医療施設番号,  b   AS 訪問回数
  FROM 訪問表
  WHERE 訪問年 = '2004'
  GROUP BY 医療施設番号
 
(3)  次のSQL文で,2004年に売上のあった医療施設のデータを出力する。
 
SELECT 医療施設表.医療施設番号,医療施設名称,病床数,売上合計,訪問回数
  FROM 医療施設表,中間表1,中間表2,MR表
  WHERE 医療施設表.医療施設番号 = 中間表1.医療施設番号
   AND 中間表1.医療施設番号 = 中間表2.医療施設番号
   AND 医療施設表.MR番号 = MR表.MR番号
   AND 支店番号 = '110'
 
(4)  次のSQL文で,2004年に売上のなかった医療施設のデータを出力する。
 
SELECT 医療施設表.医療施設番号,医療施設名称,病床数, 0 AS 売上合計,訪問回数
  FROM 医療施設表,  c  ,MR表
  WHERE 医療施設表.医療施設番号 =   c  .医療施設番号
   AND   c  .医療施設番号   d   (SELECT 医療施設番号 FROM   e  )
   AND 医療施設表.MR番号 = MR表.MR番号
   AND 支店番号 = '110'
  a  解答群
COUNT(*) COUNT(売上金額) DISTINCT 訪問詳細
MAX(売上金額) SUM(売上金額) 役職者承認SUM(訪問日)
  b  解答群
COUNT(*) COUNT(売上金額) DISTINCT 訪問詳細
MAX(売上金額) SUM(売上金額) 役職者承認SUM(訪問日)
  c  解答群
医療施設表 売上表 中間表1 中間表2 訪問表
  d  解答群
EXISTS IN NOT EXISTS NOT IN
  e  解答群
医療施設表 売上表 中間表1 中間表2 訪問表