コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
【問題1】商品一覧
SELECT
ITEM_POPULAR_RANK AS RANK
, ITEM_CODE AS CODE
, ITEM_NAME AS NAME
, RECOMMEND_ITEM_RANK AS RCM_RANK
FROM
ITEM
ORDER BY
ITEM_POPULAR_RANK ASC
-- 商品コードは降順指定になっているので気を付けましょう
, ITEM_CODE DESC;
【問題2】顧客名検索
SELECT
CUST_CODE AS CODE
, CUST_NAME AS NAME
, CUST_USER_NAME AS USER_NAME
FROM
CUSTOMER
WHERE
-- 前方一致検索なので、%は検索文字の後にのみ記述する
CUST_NAME LIKE '株式会社%'
-- 部分一致検索なので、%で検索文字を挟んで記述する
OR CUST_NAME LIKE '%商事%'
ORDER BY
CUST_CODE DESC;
【問題3】出荷状況確認
SELECT
SA.SALES_DATE AS SAL_DATE
, SA.SALES_NO AS NO
, SAD.ITEM_CODE AS ITEM_CODE
, SAD.SALES_QTY AS SAL_QTY
, SAD.DELIVERED_QTY AS DEL_QTY
-- CASE句で売上数量、出荷数量の値で出荷状況をセットする
, CASE
WHEN SAD.DELIVERED_QTY = 0
THEN '未出荷'
WHEN SAD.SALES_QTY > SAD.DELIVERED_QTY
THEN '一部出荷'
WHEN SAD.SALES_QTY = SAD.DELIVERED_QTY
THEN '出荷済'
ELSE NULL
END AS SHIP_STS
FROM
SALES AS SA
-- 売上データ明細を売上番頭で内部結合する
INNER JOIN SALES_DTL AS SAD
ON SAD.SALES_NO = SA.SALES_NO
WHERE
-- BETWEEN句で売上日を範囲指定する
SA.SALES_DATE BETWEEN '2024-04-01' AND '2024-04-10'
ORDER BY
-- 売上日は降順指定なので気を付ける
SA.SALES_DATE DESC
, SA.SALES_NO ASC
, SAD.ITEM_CODE ASC;
【問題4】売れ筋商品
SELECT
ODD.ITEM_CODE AS CODE
, IT.ITEM_NAME AS NAME
-- SUM関数で受注数量を集計する
, SUM(ODD.ORDER_QTY) AS SUM_QTY
FROM
-- 倉庫データをメインのテーブルにする
WAREHOUSE AS WH
-- 受注データを倉庫データの倉庫コードで内部結合する
INNER JOIN ORDERS AS OD
ON OD.WH_CODE = WH.WH_CODE
-- 受注データ明細を受注データの受注番号で内部結合する
INNER JOIN ORDERS_DTL AS ODD
ON ODD.ORDER_NO = OD.ORDER_NO
-- 商品データを受注データ明細の商品コードで外部結合する
-- 商品データに受注データ明細の商品コードが存在しない場合も表示対象とする
LEFT OUTER JOIN ITEM AS IT
ON IT.ITEM_CODE = ODD.ITEM_CODE
WHERE
-- 倉庫データの倉庫名でデータを絞り込む
WH.WH_NAME = '浦和倉庫'
GROUP BY
-- 商品コード、商品名でグルーピングを行う
ODD.ITEM_CODE
, IT.ITEM_NAME
HAVING
-- グルーピングで集計した受注数量が50以上のデータのみ対象とする
SUM_QTY >= 50
ORDER BY
SUM_QTY DESC
, CODE DESC;