Group_concat с добавленными столбцами

Я получил запрос, который работает просто отлично:

SELECT Course, Period, Room, Location, TeacherId, GROUP_CONCAT(StudentId) as Students 
FROM cursosv2 
GROUP BY Course, Period, Room, Location, TeacherID;

То, что я хочу (может быть, слишком простой), в результирующем запросе, чтобы иметь новый столбец, как NEW COLUMN A с объединенными значениями period+room+'final'. Но я продолжаю получать исключения. Не знаю настоящую причину.

Что я пытаюсь...

SELECT Course, Period, Room, Period+' '+Room+' Final' as test, Location, TeacherId, GROUP_CONCAT(StudentId) as Students 
FROM cursosv2 
GROUP BY Course, Period, Room, Location, TeacherID;

Благодарю.

3 ответа

Решение

Вы также должны использовать concat для конкатенации строк (не +) и добавлять в группу по

 SELECT Course, Period, Room, concat( Period,' ',Room,' Final') as test, Location, TeacherId, GROUP_CONCAT(StudentId) as Students 

 FROM cursosv2 
 GROUP BY Course, Period, test, Room, Location, TeacherID;

Использование concat соединять вместо +, И добавить test к group by пункт:

SELECT Course, Period, Room, concat(Period,' ',Room,' Final') as test, 
       Location, TeacherId, GROUP_CONCAT(StudentId) as Students 
FROM cursosv2 
GROUP BY Course, Period, Room, test, Location, TeacherID;

Вы можете использовать CONCAT_WS для достижения этой цели.

('', Столбец1, столбец2) КАК имя_столбца

SELECT Course, Period, Room, concat_ws(' ', Room, Period) AS roomperiod, Location, TeacherId, GROUP_CONCAT(StudentId) as Students FROM cursosv2 GROUP BY Course, Period, Room, Location, TeacherID;

https://dev.mysql.com/doc/refman/5.5/en/string-functions.html

Другие вопросы по тегам