我正在编写一个存储过程,其中有一个名为 scale 的列,该列存储来自为每种技能名称选择为 1/ 2/ 3/ 4 的单选按钮的结果。
现在,我想查看特定技能名称 1、技能名称 2、...、技能名称 20 的每个等级 - 1 和 2 以及 3 和 4 下的总人数。
这是我的桌子:
tbl技能:
ID | SkillName
和另一个表:
tblskill指标:
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
通过使用这个存储过程,我能够获得我想要的结果格式,但在每个输出中:不适用、初学者、精通或专家是相同的,它是表中所有条目的总和。
请有人建议我哪里出错了。