目次へ

解答例 - 実習課題2 - 8. クエリの結合

実習課題 2

販売管理データベースから、顧客に対する販売を担当した従業員が所属する営業所と、顧客を管理する営業所が同じかどうかを調べる目的で、顧客名、顧客を管理する営業所名、顧客に販売を担当した従業員名、その従業員が所属する営業所を表示させる SQL 文を記述しなさい。ただし、表示する顧客は担当従業員が所属する営業所と、顧客を管理する営業所が異なるもののみを表示するものとする。

解答例

SELECT c.c_name AS 顧客名,       co.office AS 顧客管理営業所名,
       e.e_name AS 販売従業員名, eo.office AS 販売営業所名
   FROM (
      SELECT a.c_num, c.office AS c_office, a.employee, e.office AS e_office
         FROM accept_order a
            JOIN customer c ON a.c_num = c.c_num
            JOIN employee e ON a.employee = e.e_num
      EXCEPT
      SELECT a.c_num, e.office, a.employee, c.office
         FROM accept_order a
            JOIN customer c ON a.c_num = c.c_num
            JOIN employee e ON a.employee = e.e_num
      ) data
      JOIN customer c ON data.c_num = c.c_num
      JOIN office co ON data.c_office = co.o_num
      JOIN employee e ON data.employee = e.e_num
      JOIN office eo ON data.e_office = eo.o_num;

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp