原価更新
配点 : 30点難易度 : 3
制限実行時間 : 1000ms制限メモリ使用量 : 128 MB
SQLiteの注意点

TOPSIC SQLでは、SQLの実行環境にSQLiteを使用しています。SQLite以外のRDBMSの文法を使用することはできません。
問題を解く際に注意すべきSQLiteの制約について、以下に記載してありますのでご確認下さい。

  1. NUMERIC、INTEGER、REALは、自身のクラスへの変換が推奨されていますが、変換できなかった場合でも、そのまま格納されます。
  2. 新しくデータを追加した場合、既に格納されているデータの中で ROWID の値が最大のものを探し、それに1を加えた値が新しく追加されるデータの ROWID の値として保存されます。
  3. 外部結合は、左外部結合を行う LEFT OUTER JOIN 句のみ使用できます。
    ※2022年12月以降、LEFT / RIGHT / FULL OUTER JOIN が使用可能となりました。
  4. 指定した日付と時刻のタイムゾーンはUTCとして扱われます。
  5. 日付関数や文字列関数については、SQLiteで固有の関数があります。
  6. テーブル項目の論理名が「◯◯日」となっている場合は、日付項目の時分秒は設定されていません。論理名が「◯◯日時」となっている場合は、日付項目の時分秒まで設定されています。
    • 「受注日」の場合は「2021-01-01」
    • 「受注日時」の場合は「2021-01-01 15:15:15」

その他のSQLiteの制約については、SQLiteの公式ドキュメントをご確認ください。
また、ER図の読み方やSQLiteの関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

商品の原価見直しに伴い、SKUデータ(SKU)の標準原価(STD_COST_PRICE)も見直すことになった。
SKUデータに登録されているデータを、商品コード(GOODS_CODE)毎に標準原価(STD_COST_PRICE)の平均を算出し(平均値は小数第1位を四捨五入する)、算出した平均標準原価よりも小さい標準原価の商品の標準原価に、品目データ(GOODS)の標準原価を設定しなさい。

SKUとはStock Keeping Unitの略で、在庫の管理単位である。例えば商品コード 'P010' のタンクトップに規格が2つあり、規格1が青、赤という色、規格2がS,M,Lというサイズだった場合、2色 × 3サイズ = 6種類が在庫管理単位となる。この6種類にユニークなコードを付けたものがSKUコードとなる。

以下の内容でSKUデータの項目を更新すること。

  • 標準原価(STD_COST_PRICE) = 品目データ(GOODS)の標準原価(STD_COST_PRICE)セット
  • 更新担当者名(UPDATE_USER_NAME) = 'MODIFY'
  • 担当者更新日時(USER_UPDATE_DATETIME) = '2024-08-31 00:00:00'

ER図 (半角:物理名、全角:論理名)


テーブル定義

テーブル名: GOODS

主キー 列名 データ型 必須 デフォルト値
✔︎ GOODS_CODE VARCHAR ✔︎ NULL
GOODS_NAME VARCHAR ✔︎ NULL
GOODS_TYPE INTEGER ✔︎ NULL
STOCK_MANAGEMENT_TYPE INTEGER ✔︎ NULL
STD_COST_PRICE INTEGER NULL
SHORT_DESCRIPTION VARCHAR NULL
SALE_START_DATE VARCHAR NULL
SALE_END_DATE VARCHAR NULL
VALID_FLG VARCHAR ✔︎ NULL
UPDATE_USER_NAME VARCHAR ✔︎ NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

テーブル名: SKU

主キー 列名 データ型 必須 デフォルト値
✔︎ SKU_CODE VARCHAR ✔︎ NULL
GOODS_CODE VARCHAR ✔︎ NULL
SPEC1_CODE VARCHAR ✔︎ NULL
SPEC2_CODE VARCHAR ✔︎ NULL
STD_COST_PRICE INTEGER NULL
VALID_FLG VARCHAR ✔︎ NULL
UPDATE_USER_NAME VARCHAR ✔︎ NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

テーブル名: SPEC1

主キー 列名 データ型 必須 デフォルト値
✔︎ SPEC1_CODE VARCHAR ✔︎ NULL
SPEC1_NAME VARCHAR NULL
UPDATE_USER_NAME VARCHAR NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

テーブル名: SPEC2

主キー 列名 データ型 必須 デフォルト値
✔︎ SPEC2_CODE VARCHAR ✔︎ NULL
SPEC2_NAME VARCHAR NULL
UPDATE_USER_NAME VARCHAR NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

サンプルデータ

テーブル名: GOODS

GOODS_CODE GOODS_NAME GOODS_TYPE STOCK_MANAGEMENT_TYPE STD_COST_PRICE SHORT_DESCRIPTION SALE_START_DATE SALE_END_DATE VALID_FLG UPDATE_USER_NAME USER_UPDATE_DATETIME
P001 フリルブラウスRock 2 1 4100 NULL 2022-01-02 NULL 1 SYSTEM 2024-07-18 06:58:01
P002 フリルハイネックブラウス 1 1 3500 NULL 2023-01-01 2024-08-01 0 SYSTEM 2024-07-18 06:58:01
P003 オフショルダーブラウス 1 1 2500 NULL 2023-01-01 NULL 1 SYSTEM 2024-07-18 06:58:01
P004 Vネックカットソー 1 0 3500 NULL 2022-01-03 NULL 1 SYSTEM 2024-07-18 06:58:01
P005 カラーピグメントカットソー 1 1 2400 NULL 2022-01-04 NULL 1 SYSTEM 2024-07-18 06:58:01
P006 ボーダーカットソー 1 1 3500 NULL 2023-01-01 NULL 0 SYSTEM 2024-07-18 06:58:01
P007 半袖鹿の子ポロシャツ 1 1 3000 NULL 2023-01-01 NULL 0 SYSTEM 2024-07-18 06:58:01
P008 ラインチビポロシャツ 1 0 3500 NULL 2022-01-05 2024-06-01 0 SYSTEM 2024-06-01 06:58:01
P009 リブタンクトップ 1 1 3000 NULL 2022-01-06 2024-07-30 0 SYSTEM 2024-07-30 06:58:01
P010 ロング タンク トップ 1 1 3100 NULL 2022-01-01 NULL 1 SYSTEM 2024-07-18 06:58:01

テーブル名: SKU

SKU_CODE GOODS_CODE SPEC1_CODE SPEC2_CODE STD_COST_PRICE VALID_FLG UPDATE_USER_NAME USER_UPDATE_DATETIME
P001A00B01 P001 A00 B01 4000 1 SYSTEM 2024-08-23 00:00:00
P001A00B02 P001 A00 B02 3980 1 SYSTEM 2024-08-23 00:00:00
P001A00B03 P001 A00 B03 3980 1 SYSTEM 2024-08-23 00:00:00
P001A01B01 P001 A01 B01 4050 1 SYSTEM 2024-08-23 00:00:00
P001A01B02 P001 A01 B02 4050 1 SYSTEM 2024-08-23 00:00:00
P001A01B03 P001 A01 B03 4050 1 SYSTEM 2024-08-23 00:00:00
P001A02B01 P001 A02 B01 4050 1 SYSTEM 2024-08-23 00:00:00
P001A02B02 P001 A02 B02 4050 1 SYSTEM 2024-08-23 00:00:00
P001A02B03 P001 A02 B03 4050 1 SYSTEM 2024-08-23 00:00:00
P003A00B01 P003 A00 B01 1980 1 SYSTEM 2024-08-23 00:00:00
P003A00B02 P003 A00 B02 2300 1 SYSTEM 2024-08-23 00:00:00
P003A00B03 P003 A00 B03 1980 1 SYSTEM 2024-08-23 00:00:00
P003A01B01 P003 A01 B01 2300 1 SYSTEM 2024-08-23 00:00:00
P003A01B02 P003 A01 B02 2300 1 SYSTEM 2024-08-23 00:00:00
P003A01B03 P003 A01 B03 2300 1 SYSTEM 2024-08-23 00:00:00
P003A02B01 P003 A02 B01 2300 1 SYSTEM 2024-08-23 00:00:00
P003A02B02 P003 A02 B02 2300 1 SYSTEM 2024-08-23 00:00:00
P003A02B03 P003 A02 B03 2300 1 SYSTEM 2024-08-23 00:00:00
P004A00B01 P004 A00 B01 3300 1 SYSTEM 2024-08-23 00:00:00
P004A00B02 P004 A00 B02 3350 1 SYSTEM 2024-08-23 00:00:00
P004A00B03 P004 A00 B03 3400 1 SYSTEM 2024-08-23 00:00:00
P004A01B01 P004 A01 B01 3350 1 SYSTEM 2024-08-23 00:00:00
P004A01B02 P004 A01 B02 3000 1 SYSTEM 2024-08-23 00:00:00
P004A01B03 P004 A01 B03 2980 1 SYSTEM 2024-08-23 00:00:00
P004A02B01 P004 A02 B01 3350 1 SYSTEM 2024-08-23 00:00:00
P004A02B02 P004 A02 B02 3350 1 SYSTEM 2024-08-23 00:00:00
P004A02B03 P004 A02 B03 3350 1 SYSTEM 2024-08-23 00:00:00
P005A00B01 P005 A00 B01 2000 1 SYSTEM 2024-08-23 00:00:00
P005A00B02 P005 A00 B02 2350 1 SYSTEM 2024-08-23 00:00:00
P005A00B03 P005 A00 B03 2350 1 SYSTEM 2024-08-23 00:00:00
P005A01B01 P005 A01 B01 2350 1 SYSTEM 2024-08-23 00:00:00
P005A01B02 P005 A01 B02 2350 1 SYSTEM 2024-08-23 00:00:00
P005A01B03 P005 A01 B03 2350 1 SYSTEM 2024-08-23 00:00:00
P005A02B01 P005 A02 B01 2350 1 SYSTEM 2024-08-23 00:00:00
P005A02B02 P005 A02 B02 2350 1 SYSTEM 2024-08-23 00:00:00
P005A02B03 P005 A02 B03 2350 1 SYSTEM 2024-08-23 00:00:00
P010A00B01 P010 A00 B01 3000 1 SYSTEM 2024-08-23 00:00:00
P010A00B02 P010 A00 B02 3010 1 SYSTEM 2024-08-23 00:00:00
P010A00B03 P010 A00 B03 3050 1 SYSTEM 2024-08-23 00:00:00
P010A01B01 P010 A01 B01 3050 1 SYSTEM 2024-08-23 00:00:00
P010A01B02 P010 A01 B02 3000 1 SYSTEM 2024-08-23 00:00:00
P010A01B03 P010 A01 B03 3050 1 SYSTEM 2024-08-23 00:00:00
P010A02B01 P010 A02 B01 3050 1 SYSTEM 2024-08-23 00:00:00
P010A02B02 P010 A02 B02 3050 1 SYSTEM 2024-08-23 00:00:00
P010A02B03 P010 A02 B03 3050 1 SYSTEM 2024-08-23 00:00:00

テーブル名: SPEC1

SPEC1_CODE SPEC1_NAME UPDATE_USER_NAME USER_UPDATE_DATETIME
A00 SYSTEM 2024-07-22 08:27:30
A01 SYSTEM 2024-07-22 08:27:30
A02 SYSTEM 2024-07-22 08:27:30

テーブル名: SPEC2

SPEC2_CODE SPEC2_NAME UPDATE_USER_NAME USER_UPDATE_DATETIME
B01 S SYSTEM 2024-07-22 08:35:09
B02 M SYSTEM 2024-07-22 08:35:09
B03 L SYSTEM 2024-07-22 08:35:09

Sorry, Japanese Only.