コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
【問題1】商品一覧
SELECT
ITEM_POPULAR_RANK AS RANK
, ITEM_CODE AS CODE
, ITEM_NAME AS NAME
FROM
ITEM
WHERE
-- 販売中の商品が対象
SALE_END_DATE IS NULL
ORDER BY
ITEM_POPULAR_RANK ASC
, ITEM_CODE ASC;
【問題2】SDGs推進割合
SELECT
SD.PF_CODE AS CODE
, PF.PF_NAME AS NAME
-- 小数点第3位で四捨五入
, ROUND(
(
-- REAL型に変換して、小数点の計算を有効にする
CAST(SD.PROMOTE_MUNICIPALITY AS REAL) / SD.MUNICIPALITY_TTL * 100
)
, 2
) AS RATIO
FROM
SDGS AS SD
INNER JOIN PREFECTURE AS PF
ON PF.PF_CODE = SD.PF_CODE
WHERE
SD.SURVEY_YEAR = 2022
ORDER BY
RATIO DESC
, SD.PF_CODE ASC;
【問題3】組織変更
-- 記述された順番にSQL文が実行される
-- 処理1
INSERT
INTO DEPARTMENT
-- 部門コード’A100’のデータをSELECTして各項目にセット
SELECT
'B300'
, '2023-04-01'
, NULL
, '新設部門'
, DP1.LAYER
, DP1.UP_DEPT_CODE
, '1'
, DP1.UPDATE_USER_NAME
, '2023-04-01 00:00:00'
FROM
DEPARTMENT AS DP1
WHERE
DP1.DEPT_CODE = 'A100';
-- 処理2
UPDATE DEPARTMENT
SET
END_DATE = '2023-03-31'
, VALID_FLG = '0'
, UPDATE_USER_NAME = 'ORG_CHG'
, USER_UPDATE_DATETIME = '2023-03-31 23:59:59'
WHERE
-- IN句で部門コードを指定
DEPT_CODE IN ('A100', 'A200');
-- 処理3
UPDATE EMP
SET
DEPT_CODE = 'B300'
, START_DATE = '2023-04-01'
, UPDATE_USER_NAME = 'ORG_CHG'
, USER_UPDATE_DATETIME = '2023-04-01 00:00:00'
WHERE
-- IN句で部門コードを指定
DEPT_CODE IN ('A100', 'A200')
-- 有効なデータのみ対象
AND VALID_FLG = '1';
【問題4】位置情報
SELECT
D.DISTRICT_CODE CODE,
D.DISTRICT_NAME NAME,
T.LATITUDE LAT,
T.LONGITUDE LON
FROM DISTRICT AS D
INNER JOIN LOCATION_TBL AS T
ON D.DISTRICT_CODE = T.DISTRICT_CODE
-- 地区コード '1101'を表示しない
AND D.DISTRICT_CODE != '1101'
-- 各レコードと計算するため、'1101'の緯度、経度を交差結合で取得
CROSS JOIN LOCATION_TBL AS LT
ON LT.DISTRICT_CODE = '1101'
ORDER BY
-- 直角三角形の斜辺の長さを求める三平方の定理を利用して長さを求める
(POW(LT.LATITUDE - T.LATITUDE, 2) + POW(LT.LONGITUDE - T.LONGITUDE, 2)) DESC
, D.DISTRICT_CODE ASC;