0

我的查询是:

select 
    C.GradePoint, D.Domain
from
    (select 
         A.course_code, B.course_title, A.GradePoint
     from
         (select 
              course_code, GradePoint
          from 
              CoursesResult$
          where 
              roll_number = '42472' and GradePoint != 'I' 
              and GradePoint != 'F' and GradePoint != 'D-' 
              and GradePoint != 'D+' and GradePoint != 'D'
              and GradePoint != 'C-' and GradePoint != 'C'
              and GradePoint != 'C+') A  
     join Courses$ B on A.course_code=B.course_code) C 
     join Domains$ D on C.course_title=D.Courses

输出:

GradePoint         Domain
1.    B+        Software Developer
2.    B-        Software Developer
3.    B-        Software Developer
4.    B-        Project Management
5.    B-        Business Intelligence and Analytics
6.    B+        Business Intelligence and Analytics
7.    B+        Business Intelligence and Analytics
8.    B-        Game Development
9.    B             Game Development
10.    B-       Database Administrator
11.    B-       Database Administrator
12.    B        Database Administrator

现在每个年级的数字是

  1. B=3
  2. B+ =4
  3. B- = 2

我想计算每个域的成绩计数

需要的输出:

  1. 软件开发人员 8
  2. 商业智能和分析 10
  3. 数据库管理员 7
  4. 等等

有人可以帮忙吗??

4

1 回答 1

0

用这个替换你的前两行:

select 
SUM(CASE C.GradePoint WHEN 'B' THEN 3 WHEN 'B+' THEN 4 WHEN 'B-' THEN 2 ELSE 0 END), 
D.Domain

GROUP BY D.Domain在查询的最后添加

于 2013-04-26T04:58:00.570 回答