で列のタイトルとして、私は学生の不在情報が含まれているテーブルを持って、私はStudentNameを表示するには、そのテーブルからCTEを行い、CNAMEコラムのタイトルとそれぞれの不在時間など各コースの学生。 これは私のCTEコードです:表示行データのSQL Server 2014でのCTE
DECLARE @SummaryTable TABLE
(
SName nvarchar(50),-- Student Name
CName nvarchar(50) -- Course Name
)
INSERT INTO @SummaryTable(SName, CName)
SELECT Student_tbl.SName,Sum_Abs from Absence_Summary_tbl
inner join Student_tbl on Student_tbl.S_ID = Absence_Summary_tbl.S_ID
inner join Stages_tbl on Stages_tbl.Stage_ID = Student_tbl.Stage_ID
where Stages_tbl.Stage_ID = 1;
WITH CTE AS (
SELECT SName, CName,
ROW_NUMBER() OVER(PARTITION BY SName ORDER BY CName) AS rn FROM @SummaryTable)
SELECT SName,
MAX(CASE WHEN rn=1 THEN CName ELSE 0 END) AS CName1,
MAX(CASE WHEN rn=2 THEN CName ELSE 0 END) AS CName2,
MAX(CASE WHEN rn=3 THEN CName ELSE 0 END) AS CName3
FROM CTE
GROUP BY SName;
CTEの結果は下の画像のように表示される:それはコラムのタイトルとしてCName1、CName2、CName3とコース名を表示結果に
http://i68.tinypic.com/1zlsz9v.png[/IMG]
コース名の列タイトルとしてエイリアスを除いて実際のコース名を表示する方法はありますか? Absence_Summary_tbl 'という名前の列にコース名があります。です。
出力結果と入力データを提供できますか?あなたが言及した画像にはデータがありません。 –
サンプルクエリは、CNameがsum_absではなくコース名を保存していないことを示しています。テーブル変数に[SName、CName、Sum_Abs]を挿入します。 – p2k