Member 13998042 Ответов: 1

Как использовать триггер обновления или функцию динамического обновления


я новый претендент на sql и был дан с заданием и поражен им
у меня есть такая таблица
---------------------------------------------------------------
no | studentID | subject | marks


1 001 математика 90
2 001 история 88
Математика 3 002 99
4 002 история 88
5 002 компьютер 97



и я хочу получить такой результат

--------------------------------------
нет | имя студента | всего | ранг
1 Джеймс 178 2
2 Иоанна 227 1



независимо от количества субъектов , на основе регистрационного номера сумма должна быть добавлена динамически и должен быть получен ранг

Что я уже пробовал:

SELECT
    m.StudentID as ID,
    s.SubjectName as subjects,
    m.MarkRate as marks
FROM 
    Mark m
    INNER JOIN Subject s on m.SubjectID = m.SubjectID 
ORDER BY 
    m.StudentID,
    s.SubjectName
----------------------------------
SELECT 
    X.StudentID,
    X.StudentName,
    ROWNUMBER() OVER ( ORDER BY X.TotalMark desc) as Rank
FROM (
    SELECT 
        m.StudentID,
        s.StudentName,
        sum(m.MarkRate) TotalMark
    FROM 
        Mark m
        INNER JOIN Student s on s.StudentID = m.StudentID 
    GROUP BY 
        m.StudentID,
        s.StudentName
) X
ORDER BY X.TotalMark desc




я топчу это, но не могу динамически добавлять значения



кроме того, мне нужно использовать ключевое слово UPDATE, которое также может использовать его в качестве триггера.

1 Ответов

Рейтинг:
2

Wendelius

Это похоже на домашнее задание, поэтому я не буду вдаваться в подробности. Но чтобы начать, вы должны использовать и то, и другое
- SUM (Transact-SQL) - SQL Server | Microsoft Docs[^]
- RANK (Transact-SQL) - SQL Server | Microsoft Docs[^]
статистическая функция. Взгляните на примеры в документации. Они очень похожи на ваши потребности.

Что касается вопроса об обновлении и триггере, я не совсем понял эту часть...