【发布时间】:2013-05-07 18:27:54
【问题描述】:
我正在编写一个存储过程,其中我有一个名为 scale 的列,它存储从为每种技能名称选择为 1/ 2/ 3/ 4 的单选按钮的结果。
现在,我想查看特定技能名称 1、技能名称 2、...、技能名称 20 的每个等级 - 1 和 2 以及 3 和 4 下的总人数。
这是我的桌子:
tbl技能:
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
通过使用这个存储过程,我可以获得我想要的结果格式,但在每个的输出中:不适用,初学者,精通或专家是相同的,它是所有条目的总和桌子。
请有人建议我哪里出错了。
【问题讨论】:
标签: sql stored-procedures join sql-server-2008-r2