2013-04-26 1 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. В = 3
  2. В + = 4
  3. B- = 2

Я хочу, чтобы вычислить количество сортов для каждого домена

Необходим выход:

  1. Software Developer 8
  2. Business Intelligence и аналитика 10
  3. Администратор базы данных 7
  4. и например,

Может ли кто-нибудь помочь?

+0

Так что точная проблема? –

+0

Я хочу рассчитать кол-во оценок по каждому домену – user2312415

ответ

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