2017-05-03 8 views
0

以下のレコードがあります。私は月曜日の授業で、すべての科目が月曜日に開始時刻と終了時刻とともに表示されるようにしたい。これはどうすればいいですか?複数の列ではなく同じ日に科目を追加する方法

SELECT t.teacher_name, tci.class_name, tsb.Subject_Name, tdn.DaysName, 
     tss.subject_start, tss.subject_end 
FROM tblsubjectSchedule tss 
INNER JOIN tblsubjects tsb ON tss.subject_id = tsb.Idx 
INNER JOIN tblclassinfo tci ON tss.class_id = tci.Idx 
INNER JOIN tbldaysnames tdn ON tss.days_id = tdn.Idx 
INNER JOIN tblteacher t ON tss.techer_id = t.Idx 
WHERE tss.class_id = 2 AND t.school_id = 1 

enter image description here

+0

フォーマットしてくださいのクエリで添付ファイルを参照してくださいあなたの質問。 また、いくつかのサンプルデータを表示できますか? – Eli

答えて

0

あなたの添付ファイルが完全に明確ではありません。あなたは結果のteacher_nameを無視するつもりですか? あなたのスクリーンショットでは、月曜日の結果に「samad teacheer」は含まれていません。クエリは月曜日の日付のみにしますか?

クラスと曜日と日付だけに焦点を当てると、私は以下のようになります。添付ファイルを参照してください。あなたのために動作し、私の答えを受け入れるかどうかを知ってください。 enter image description here

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 ; 

また、スケジュール欄に教師の名前を追加することができます。 enter image description here

ここ
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 ; 
関連する問題