列標題在SQL Server 2014顯示行i的數據具有表包含學生不存在信息,使一個CTE從該表顯示StudentName,CNAME作爲列標題和每個缺少小時每門課程的學生。 這是我的CTE代碼:如在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的結果就像下面的圖片顯示:
http://i68.tinypic.com/1zlsz9v.png[/IMG]
的結果也顯示課程名稱作爲CName1,CName2,CName3作爲列標題,有沒有什麼方法可以顯示真實的課程名稱,除了別名作爲課程名稱的列標題。在我的真實表'Absence_Summary_tbl'我有一個名爲CName的課程名稱。
你能提供輸出結果和輸入數據嗎?您提到的圖像沒有任何數據。 –
您的示例查詢顯示CName不存儲課程名稱而不是sum_abs。在表格變量中插入[SName,CName,Sum_Abs]。 – p2k