Выбор значений из одного столбца на основе другого значения столбца - PullRequest
1 голос
/ 27 сентября 2011

Мне сложно кратко изложить мою проблему, поэтому я просто приведу пример.
Допустим, у меня есть таблица DB2 со студентами:

Name           Class          Grade
Billy J        Econ           A
Sarah S        Maths          B
Greg X         Computes       A-
Billy J        Maths          D
Greg X         Maths          C+

И я хочу получить тех студентов, которыенаходятся как в экон, так и в математике и отображают информацию таким образом:

Name       Maths Grade       Econ Grade
Billy J    D                 A

Как в мире я могу достичь этого?

Ответы [ 2 ]

5 голосов
/ 27 сентября 2011

Это решение решит проблему для двух названных вами классов:

SELECT Name, Math.Grade AS MathsGrade, Econ.Grade AS EconGrade
  FROM Students Math INNER JOIN Students Econ ON Math.Name = Econ.Name
  WHERE Math.Class = 'Maths' AND Econ.Class = 'Econ'

Единственное, что не делает это решение, - это включает пробелы в имена производных столбцов.Вы можете сделать это, написав Maths Grade и Econ Grade в любых символах, которые DB2 использует для кавычек идентификаторов.

Для того, чтобы быть включенным в программу, учащиеся должны иметь как оценку по математике, так и оценку по экономике.

0 голосов
/ 27 сентября 2011
SELECT * from Students
where id in 
(SELECT id from Students where Class = 'Econ')
AND id in
(SELECT id from Students where Class = 'Math');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...