私はこのテーブルを回すSQLクエリを書き込もうとしています:
Start_time End_time Instructor Student
9:00 9:35 Joe Bob Andrew
9:00 9:35 Joe Bob Smith
9:00 9:35 Roberto Andy
10:00 10:35 Joe Bob Angelica
11:00 11:20 Roberto Bob
このようなものに:
Instructor 9:00 10:00 11:00
Joe Bob Andrew, Smith Angelica NULL
Roberto Andy NULL Bob
これはある種のPIVOTコマンドだと思いますが、SQLクエリをどのように記述すればよいかわかりません。時間はすべて動的に生成されるため、クエリが2番目のテーブルの列名を動的に生成する場合(たとえば、元のテーブルに11:30の追加の開始時間が含まれている場合、11の新しい列があるはずです)が望ましいです。結果は30)。
よろしくお願いします。しばらく遊んでいましたが、自分で動かすことができませんでした。必要に応じて、完全なデータを提供するSQLINSERTコマンドを提供できます。
編集:このselectステートメントの結果をVIEWとして取得すると特に役立ちます。ありがとう!
編集2:最初のテーブルを作成するビューを生成しているコードは次のとおりです。
CREATE VIEW schedule_view AS SELECT RTRIM(SUBSTRING(students.schedule_first_choice, 1, 5)) AS start_time, RTRIM(SUBSTRING(students.schedule_first_choice, -10, 5) AS end_time, CONCAT(instructors.first_name, ' ', instructors.last_name) AS instructor_name,
CONCAT(students.first_name, ' ', students.last_name) AS student_name , students.swim_america_level as class
FROM students, instructors WHERE students.instructor_id = instructors.instructor_id AND students.season =
(SELECT constant_value FROM constants WHERE constant_name = 'season') AND students.year =
(SELECT constant_value FROM constants WHERE constant_name = 'year')