Ваш стол кажется очень денормализованным. Я слышал, что курсоры ужасны в SQL Server и их следует избегать, если вы можете. С этим, как это, положить в таблицу под названием Расписание, как я могу выполнить ваш запрос.
DECLARE @Schedule TABLE
(
ClassName VARCHAR(50)
, ProfessorName VARCHAR(50)
, StudentsPresent INT
, ClassStartTime TIME
, ClassDate DATE
, ClassID INT
);
INSERT INTO @Schedule
VALUES ('Philosophy', 'Stewart', 10, '8:00', '20110129', 1)
, ('Philosophy', 'Kyle', 10, '8:00', '20110129', 1)
, ('Religion', 'Myke', 11, '8:30', '20110129', 2)
, ('Religion', 'Nancy', 11, '8:30', '20110129', 2);
WITH UniqueClasses AS
(
SELECT DISTINCT
ClassName
, ClassStartTime
, StudentsPresent
, ClassDate
, ClassID
FROM @Schedule
)
SELECT
ClassName
, (
STUFF((
SELECT
',' + ProfessorName
FROM @Schedule Schedule
WHERE Schedule.ClassID = UniqueClasses.ClassID
FOR XML PATH('')
) , 1, 1, '')
)AS ProfessorName
, StudentsPresent
, StudentsPresent
, ClassStartTime
, ClassDate
, ClassID
FROM UniqueClasses