あなたの添付ファイルが完全に明確ではありません。あなたは結果のteacher_nameを無視するつもりですか? あなたのスクリーンショットでは、月曜日の結果に「samad teacheer」は含まれていません。クエリは月曜日の日付のみにしますか?
クラスと曜日と日付だけに焦点を当てると、私は以下のようになります。添付ファイルを参照してください。あなたのために動作し、私の答えを受け入れるかどうかを知ってください。
SELECT t1.class_name,t1.daysname,
subject_name =REPLACE((SELECT (subject_name+'-start:'+CONVERT(VARCHAR, subject_start, 120)+'-End:'+CONVERT(VARCHAR, subject_end, 120)) AS [data()]
FROM [practice].[dbo].[test] t2
WHERE t2.daysname = t1.daysname
ORDER BY subject_name
FOR XML PATH('')
), ' ', ';')
FROM [practice].[dbo].[test] t1
GROUP BY daysname,class_name ;
また、スケジュール欄に教師の名前を追加することができます。
ここ
SELECT t1.class_name,t1.daysname,
schedule =REPLACE((SELECT (teacher_name+'-'+subject_name+'-start:'+CONVERT(VARCHAR, subject_start, 120)+'-End:'+CONVERT(VARCHAR, subject_end, 120)) AS [data()]
FROM [practice].[dbo].[test] t2
WHERE t2.daysname = t1.daysname
ORDER BY subject_name
FOR XML PATH('')
), ' ', ';')
FROM [practice].[dbo].[test] t1
GROUP BY daysname,class_name ;
のみ「月曜日
SELECT t1.class_name,t1.daysname,
schedule =REPLACE((SELECT (teacher_name+'-'+subject_name+'-start:'+CONVERT(VARCHAR, subject_start, 120)+'-End:'+CONVERT(VARCHAR, subject_end, 120)) AS [data()]
FROM [practice].[dbo].[test] t2
WHERE t2.daysname = t1.daysname
ORDER BY subject_name
FOR XML PATH('')
), ' ', ';')
FROM [practice].[dbo].[test] t1 where daysname='Monday'
GROUP BY daysname,class_name ;
フォーマットしてくださいのクエリで添付ファイルを参照してくださいあなたの質問。 また、いくつかのサンプルデータを表示できますか? – Eli