Пожалуйста, помогите мне со следующей проблемой. хотите преобразовать данные строки в столбцы на основе значения "PeriodNum"
столбец столбца max до периода8 ... в таблице есть несколько учителей ... ниже - всего лишь образец из 2 учителей.sql from row to columns
Образец данных:
id teachername course_name periodnum courseid
------------------------------------------------------------------
14088 Smith, John 1; Physical Education 9 GYM ABCD 1 10064
14088 Smith, John 2; Physical Education 9 GYM ABCD 2 10064
14088 Smith, John 3; Physical Education 11 GYM BD 3 10065
14088 Smith, John 5; Physical Education 11 GYM AC 5 10065
14088 Smith, John 6; Physical Education 11 GYM ABCD 6 10065
14088 Smith, John 7; Health 9 P373 ABCD 7 10059
14088 Smith, John 8; Physical Education 11 GYM AC 8 10065
14088 Smith, John 8; Health 10 GYM BD 8 10066
15411 Yong, Jerry 1; Science 6 ABCD 1 10078
15411 Yong, Jerry 2; Science 9 ABCD 2 10078
15411 Yong, Jerry 3; Science 11 BD 3 10078
15411 Yong, Jerry 5; Science 11 AC 5 10078
15411 Yong, Jerry 6; Science 11 ABCD 6 10078
15411 Yong, Jerry 7; Maths P373 ABCD 7 10080
15411 Yong, Jerry 8; Biology 11 AC 8 10041
Я хочу иметь желаемого результата выглядеть следующим образом:
id teachername Period1 Period2 Period3 Period4 Period5 Period6 Period7 Period8
14088 Smith, John 1; Physical Education 9 GYM ABCD 2; Physical Education 9 GYM ABCD 3; Physical Education 11 GYM BD NULL 5; Physical Education 11 GYM AC 6; Physical Education 11 GYM ABCD 7; Health 9 P373 ABCD 8; Physical Education 11 GYM AC + 8; Health 10 GYM BD
15411 Yong, Jerry 1; Science 6 ABCD 2; Science 9 ABCD 3; Science 11 BD 5; Science 11 AC 6; Science 11 ABCD 7; Maths P373 ABCD 8; Biology 11 AC
... спасибо так много.
Я пробовал следующий запрос
SELECT DISTINCT
t.[id],
t.[teachername]
,t1.course_name AS period1,t2.course_name AS period2,t3.course_name AS period3, t4.course_name AS period4, t5.course_name AS period5, t6.course_name AS period6,
t7.course_name AS period7,t8.course_name AS period8 -- into ccs_test
FROM @teacher t
LEFT OUTER JOIN CompanyGrouped t1 ON t.[id]=t1.[id] AND t1.ColumnNumber=1 and t.periodnum=1
LEFT OUTER JOIN CompanyGrouped t2 ON t.[id]=t2.[id] AND t2.ColumnNumber=2 and t.periodnum=2
LEFT OUTER JOIN CompanyGrouped t3 ON t.[id]=t3.[id] AND t3.ColumnNumber=3 and t.periodnum=3
LEFT OUTER JOIN CompanyGrouped t4 ON t.[id]=t4.[id] AND t4.ColumnNumber=4 and t.periodnum=4
LEFT OUTER JOIN CompanyGrouped t5 ON t.[id]=t5.[id] AND t5.ColumnNumber=5 and t.periodnum=5
LEFT OUTER JOIN CompanyGrouped t6 ON t.[id]=t6.[id] AND t6.ColumnNumber=6 and t.periodnum=6
LEFT OUTER JOIN CompanyGrouped t7 ON t.[id]=t7.[id] AND t7.ColumnNumber=7 and t.periodnum=7
LEFT OUTER JOIN CompanyGrouped t8 ON t.[id]=t8.[id] AND t7.ColumnNumber=8 and t.periodnum=8
С уважением, HT
Пожалуйста, отформатируйте свой код, чтобы он был на самом деле доступен для чтения и предоставлял запросы, которые вы уже пробовали. – Siyual
Какая база данных вы используете, поскольку есть функции для некоторых, которые делают это. – Abercrombieande
SQL Server 2008. – hets