【問題1】部署別受注一覧

SELECT
    DP.DEPT_CODE
    , DP.DEPT_NAME
    , OD.ORDER_NO
    , CS.CUST_CODE
    , CS.CUST_NAME
    , OD.ORDER_AMT 
FROM
    TBL_ORDERS AS OD

    -- 内部結合で、部署テーブルにDEPT_CODEが存在する場合のみ対象とする
    INNER JOIN TBL_DEPT AS DP 
        ON DP.DEPT_CODE = OD.DEPT_CODE

    -- 外部結合で、顧客テーブルにCUST_CODEが存在しない場合も対象とする
    LEFT OUTER JOIN TBL_CUST AS CS
        ON CS.CUST_CODE = OD.CUST_CODE 
ORDER BY
    OD.DEPT_CODE ASC
  , OD.ORDER_NO;

【問題2】組合せ一覧

SELECT
    T1.ID AS ID_S
    , SIZE AS SZ
    , T2.ID AS ID_C
    , COLOR AS CL 
FROM
    TBL_SIZE AS T1 

    -- 交差結合で全ての組合せを取得する
    CROSS JOIN TBL_COLOR AS T2 
WHERE
    ID_S IN (1, 3) 
ORDER BY
    ID_S DESC
    , ID_C DESC;

【問題3】従業員と部署の一覧

SELECT
    T1.EMP_CODE
    , T1.EMP_NAME
    , T2.DEPT_CODE
    , T2.DEPT_NAME 
FROM
    TBL_EMPLOYEES AS T1 

    --  完全外部結合で2テーブルの全てのデータを対象とする
    FULL OUTER JOIN TBL_DEPT AS T2 
        ON T1.DEPT_CODE = T2.DEPT_CODE 
ORDER BY
    T1.EMP_CODE ASC
    , T2.DEPT_CODE ASC;

【問題4】登録部署一覧

-- 受注テーブルの部署コードを取得
SELECT
    OD.DEPT_CODE AS DEPT_CODE
    , DP.DEPT_NAME 
FROM
    TBL_ORDERS AS OD 
    LEFT OUTER JOIN TBL_DEPT AS DP 
        ON DP.DEPT_CODE = OD.DEPT_CODE 

-- UNIONで2テーブルで取得したデータの重複を省いて連結する
UNION 

-- 売上テーブルの部署コードを取得
SELECT
    SA.DEPT_CODE AS DEPT_CODE
    , DP.DEPT_NAME 
FROM
    TBL_SALES AS SA 
    LEFT OUTER JOIN TBL_DEPT AS DP 
        ON DP.DEPT_CODE = SA.DEPT_CODE 
ORDER BY
    DEPT_CODE ASC;