2017-01-27 6 views
-1

Я следую по Бен О. Смита Введение в SQL для научных данных, но у меня возникают проблемы со следующим кодом на pg.9 на моем локальном MySQL:Ошибка использования случай, когда в SQL

PDF URL: http://downloads.bensresearch.com/SQL.pdf

SQL Error (1054): Неизвестный столбец 's.id' в 'где предложение'

Я следовал точно такую ​​же структуру данных, перечисленных на стр. 3. Но я не могу обернуть голову вокруг ошибки.

Есть ошибки в следующем коде?

select 
    id, 
    name, 
    (select case 
       when avg_gpa >= 3.5 then 2 
       when avg_gpa < 3.5 and avg_gpa >= 3.0 then 1 
       else 0 
       end as gpa_type 
    from 
     (select avg(gpa) as avg_gpa 
     from term_gpa 
     where id=s.id) as avg_gpa_table 
    ) as gpa_type 
from 
    student as s 
ORDER BY 
    name ASC; 
+0

Название книги не вопрос. Пожалуйста, отредактируйте свой заголовок, чтобы описать проблему, о которой вы говорите, или вопрос, который вы задаете. Ваше название должно объяснить, какова ваша трудность, и название книги не делает этого. Мы также не собираемся идти куда-то, чтобы прочитать книгу, чтобы получить информацию, необходимую вам. Предоставьте соответствующие данные здесь, в самом вопросе, пока вы редактируете. См. [Ask] для получения дополнительной информации. –

+0

Я предполагаю, что вы используете MySQL, правильно? –

ответ

0

Попытка переписать это так ...

select s.id 
    , s.name 
    , case 
      when avg_gpa >= 3.5     then 2 
      when avg_gpa < 3.5 and avg_gpa >= 3.0 then 1 
      else 0 
     end as gpa_type 
from student as s 
LEFT JOIN (   
      select id , avg(gpa) as avg_gpa 
      from term_gpa 
      Group by id 
      ) as avg_gpa_table 
ON avg_gpa_table.id = s.id 
ORDER BY s.name ASC; 
Смежные вопросы