前提・実現したいこと
DELPHIで社内システムを作っています。
システム内部のデータベース部分にSQLiteを利用していますが
データ一覧表示時の並び順を思うようにできずにいます。
DELPHI部分は大丈夫ですが、データベース(SQLite)は全くの初心者で
手探り状態で開発しています。
SQLiteの構文をご教授頂ければ幸いです。
以下のようにソートして表示したいと思っています。
'上司'カラムは表示しませんので、データそのものを書き換えてしまう方法でも
かまいません。
SQLコード(上図真ん中の状態になります)
CREATE TABLE 社員DATA(ID INTEGER, 名前 TEXT, 社員No TEXT, 上司 TEXT); INSERT INTO 社員DATA(ID, 名前, 社員No ) VALUES(1, 'DDD', '111' ); INSERT INTO 社員DATA(ID, 名前, 社員No ) VALUES(2, 'PPP', '222' ); INSERT INTO 社員DATA(ID, 名前, 社員No, 上司) VALUES(3, 'KKK', '333', '111'); INSERT INTO 社員DATA(ID, 名前, 社員No, 上司) VALUES(4, 'EEE', '444', '555'); INSERT INTO 社員DATA(ID, 名前, 社員No ) VALUES(5, 'VVV', '555' ); INSERT INTO 社員DATA(ID, 名前, 社員No, 上司) VALUES(6, 'QQQ', '666', '111'); INSERT INTO 社員DATA(ID, 名前, 社員No, 上司) VALUES(7, 'NNN', '777', '555'); INSERT INTO 社員DATA(ID, 名前, 社員No, 上司) VALUES(8, 'HHH', '888', '111'); INSERT INTO 社員DATA(ID, 名前, 社員No, 上司) VALUES(9, 'AAA', '999', '111'); SELECT 名前,社員No,上司 FROM 社員DATA ORDER BY 上司,社員No
宜しくお願いいたします。
試したこと
途中経過のソートは
[ SELECT 名前,社員No,上司 FROM 社員DATA ORDER BY 上司,社員No ]
で上図真ん中の順に表示することは出来ます。
調べると、右の状態にするには自己結合(再帰)とか出てきますが、
理解できずに可能なのかもわかりません。
以下文章、いただいたアドバイスにより考えたことの追記
SQL文で可能であればですが、上方図の真ん中の状態から下図のように上司カラムを
編集してから上司カラムでソートできれば、思っていた通りの結果になりそうです。
SQLでの実行の方が速そうですが、この内容の上司カラムの書き換えは開発環境側(DELPHI)
であれば自分にも出来そうな気がしてますので、そちらも併せてテストしてみようと思います。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/14 07:54
2020/05/14 21:12
2020/05/15 04:17 編集
2020/05/15 05:54