в SQL Server 2014 У меня есть таблицы, которые содержат информацию, отсутствие студента, я сделать КТР из этой таблицы, чтобы отобразить StudentName, CNAME как заголовок колонки и отсутствие часов для каждого студент в каждом курсе. это мой КТР код:отображения строк данных в виде заголовка столбца в КТР
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;
Результат КТР является дисплей, как изображение ниже:
http://i68.tinypic.com/1zlsz9v.png[/IMG]
в результате его отображения названия курса как CName1, CName2, CName3 как заголовки столбцов, есть ли способ отображать имена реальных курсов, кроме псевдонимов, в виде заголовков столбцов для названий курсов. в моей реальной таблице 'Absence_Summary_tbl' У меня есть название курса в столбце CName.
Можете ли вы предоставить выходные результаты и входные данные? У изображения, о котором вы упомянули, нет никаких данных. –
Ваш образец запроса показывает, что CName не сохраняет имя курса, а скорее sum_abs. Вставьте переменную table в поле [SName, CName, Sum_Abs]. – p2k