美容学校システムにてSQLServerを使用
■やりたいこと
採番ルールによる番号を、学生ごとに付与します。
■採番ルール
クラスA~Fを全体を一括で採番します。
現行:クラス順、名前ふりがな順の連番
改修:クラス順の中で、Eクラスのみ①②の順で採番をしたい。
①専攻=ネイル → 名前ふりがな
②専攻=エステ → 名前ふりがな
③専攻=①②以外→名前ふりがな
■求めたい結果
A~Dクラスは、クラス順、名前ふりがな順で採番
Eクラスは、専攻順、名前ふりがな順で採番
例:
あんどう ネイル 1
いとう ネイル 2
あいだ エステ 3
いがわ エステ 4
うらた エステ 5
FクラスがEクラスのMAX番号からクラス順、名前ふりがな順で採番
■PGM(ストアド)
学生テーブルから「クラス」「名前ふりがな」「専攻」のカーソルを回し
採番された値を同テーブル「番号」にUPDATEしていく仕組みになっております。
既存のカーソル部分(ストアドより)
DECLARE CUR_S CURSOR FOR
SELECT 学生NO
FROM 学生TABLE
ORDER BY クラス,名前,ふりがな
■対象テーブル
学生テーブル
「学生NO」
「名前ふりがな」
「クラス」・・・A~F
「専攻」・・・「ネイル」「エステ」など
「番号」・・・採番してupdate
このカーソルのSELECT文をどのように改修したらよいか
ご教授いただけたらと存じます。
求めたい結果が変更がありました。
■採番ルール
入学年度順→クラス順
└Eクラス:専攻順→学生NO順
└他クラス:学生NO順→専攻順
■データ
Aクラス
001 専攻05 2021年入学
002 専攻03 2019年入学
003 専攻01 2021年入学
Eクラス
004 専攻05 2019年入学
005 専攻03 2021年入学
006 専攻01 2021年入学
Fクラス
007 専攻05 2019年入学
008 専攻03 2021年入学
009 専攻01 2021年入学
■求めたい順
002 専攻03 2019年入学 A
004 専攻05 2019年入学 E
007 専攻05 2019年入学 F
001 専攻05 2021年入学 A
003 専攻01 2021年入学 A
006 専攻01 2021年入学 E
005 専攻03 2021年入学 E
008 専攻03 2021年入学 F
009 専攻01 2021年入学 F
回答1件
あなたの回答
tips
プレビュー