2013-04-26 62 views
0

我的查询是:SQL查询表

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. 和等

任何人都可以帮忙吗?

+0

那么,有什么具体问题? – 2013-04-26 04:48:12

+0

我想计算每个域名的等级计数 – user2312415 2013-04-26 04:58:02

回答

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

+0

非常感谢!做得好!! – user2312415 2013-04-26 07:20:52