Я пишу хранимую процедуру, где у меня есть столбец с именем scale, который сохраняет результат с помощью переключателя, выбранного как 1/2/3/4 для каждого типа Название навыка.Сохраненная процедура получения суммы записей в таблице для каждого ID
Теперь я хочу видеть общее количество людей под каждой шкалой - 1 и 2 и 3 и 4 для определенного навыка 1, умения 2, ..., skillname20.
Вот мой стол:
tblSkill:
ID | SkillName
и другой стол, как:
tblskillMetrics:
ID | SkillID | EmployeeID | Scale
А вот запрос пытаюсь написать:
Create Procedure spGetSkillMetricsCount
As
Begin
SELECT
tblSkill.Name as skillname,
(select COUNT(EmployeeID) from tblSkillMetrics where tblSkillMetrics.Scale=1) AS NotAplicable,
(select COUNT(EmployeeID) from tblSkillMetrics where tblSkillMetrics.Scale=2) AS Beginner,
(select COUNT(EmployeeID) from tblSkillMetrics where tblSkillMetrics.Scale=3) AS Proficient,
(select COUNT(EmployeeID) from tblSkillMetrics where tblSkillMetrics.Scale=4) AS Expert
FROM
tblSkill
INNER JOIN
tblSkillMetrics ON tblSkillMetrics.SkillID = tblSkill.ID
GROUP BY
tblSkillMetrics.Scale, tblSkill.Name
ORDER BY
skillname DESC
END
Используя эту хранимую процедуру, я могу получить желаемый формат, в котором я хочу получить результат, но в результатах для каждого: Неприменимо, Новичок, Профессионал или Эксперт - это то же самое, и это сумма всех сделанных записей в таблице.
Пожалуйста, кто-нибудь может предложить, где я иду не так.
Спасибо @ Andriy M, что очень помогло. Я тоже пробовал что-то подобное, но кое-что допустил, поэтому не смог добиться результата. И спасибо за то, что объяснил мне все. – Novice