SQL查找表

时间:2013-04-26 04:38:12

标签: sql lookup-tables

我的查询是:

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
  4. 我想计算每个域的成绩计数

    需要输出:

    1. 软件开发人员8
    2. 商业智能和分析10
    3. 数据库管理员7
    4. 任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分: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