Top.Mail.Ru
Ответы

MS SQL запрос на вывод количество записей

/****** Скрипт для команды SelectTopNRows из среды SSMS ******/
SELECT TOP (1000) [id]
,[classOfReward]
,[typeOfReward]
,[subjectOfReward]
,[id_Student] (ВНЕШНИЙ КЛЮЧ, СВЯЗАННЫЙ С ID ТАБЛИЦЫ STUDENTS)

FROM [subd_school].[dbo].[achievements_students]

/****** Скрипт для команды SelectTopNRows из среды SSMS ******/

SELECT TOP (1000) [id]

,[surname]

,[firstname]

,[patronymic]

,[gender]

,[class]

,[dataOfBirthDay]

,[image]

FROM [subd_school].[dbo].[students]

На первом фото выделяя определенного ученика на нижней таблице появляется список записей, которые у него есть. (У перового 3 достижения, последние 2 имеют по одному).
Требуется вывести список студентов, но последний столбец показывается количество достижений определенного ученика и вопрос: КАК ЭТО СДЕЛАТЬ?
Я уже всю голову сломал, думаю о запросе, но каком или же как-то иначе подойти к этому делу?

По дате
По рейтингу
Аватар пользователя
Мудрец

элементарно

123456
 select STUDENTS.[surname],

 count([subd_school].[dbo].[achievements_students].[id_Student]) as Reward
 FROM STUDENTS 
JOIN [subd_school].[dbo].[achievements_students] on [subd_school].[dbo].[achievements_students].[id_Student] = STUDENTS.Id 
GROUP BY STUDENTS.[surname] 

хотя лучше добавить id и по id группировать, вдруг однофамильцы. Аналогично

Аватар пользователя
Оракул

А не проще это на клиенте сделать после получения выборки? Если запросом то разумеется groupby и count.