У меня есть следующее представление, в котором показано имя студента, кредиты, которые имеет ученик, и я просто добавил столбец с именем year, установленным в 0.Попытка сопоставить годы студентам университетов
+------------------+---------+------+
| StudentName | Credits | Year |
+------------------+---------+------+
| Jon Macleod | 0 | 0 |
| Carrie Gregory | 0 | 0 |
| Matt Hayden | 0 | 0 |
| Emily Scarlett | 10 | 0 |
| Hailey Taylor | 10 | 0 |
| Tj Davidson | 10 | 0 |
| Alex Harry | 20 | 0 |
| Matt Tosh | 20 | 0 |
| Mitchell Gallant | 20 | 0 |
| Jon Harris | 30 | 0 |
| Casey Macky | 30 | 0 |
| James Doolittle | 30 | 0 |
+------------------+---------+------+
Я хочу сделать так, чтобы, когда студент имеет 0 кредитов, они являются первым годом. когда у ученика 10 кредитов, они 2-го года и т. д.
У меня есть следующий скрипт, но я не могу понять, почему он не работает.
CREATE OR REPLACE VIEW Year AS
SELECT S.stu_name AS StudentName, SUM(Credits) AS Credits, 0 AS Year
FROM Student AS S JOIN Enrollment AS E
ON S.stu_id = E.stu_id
Case
when (Year = '0' and Credits = 0 then 'FirstYear'
when (Year = '0' and Credits = 10 then 'SecondYear'
else Year
end as Year
GROUP BY S.stu_id
ORDER BY Credits;
Что произойдет, если у двух учеников одноименное имя? – Shomz
Начать с SELECT studentname, case when etc from ... – Strawberry
У меня также есть студенческие идентификаторы, связанные со студентами. В этом примере я только что показал имена – Godin1