2015-06-03 5 views
-3

Я пытаюсь выяснить, что не так с моим заявлением sql ниже. Я получаю следующую ошибку:Обновление таблицы на основе результатов условия из другой таблицы

The multi-part identifier "P1Totals.StudentTotals" could not be bound

Что я делаю неправильно?

UPDATE StudentRegistration 
    SET Year ='2016', 
    Term = 'Term 1' 
where P1Totals.StudentTotals >='300' 
    and P1Totals.StudentTotals <='400' 
+0

У вас есть ссылка на псевдоним таблицы, 'P1Totals', но эта таблица нигде не упоминается. Из запроса невозможно сказать, что вы пытаетесь сделать. Образцы данных и желаемые результаты, а также тег базы данных, которую вы используете, помогут. –

+1

Какая СУБД вы используете? Postgre? Oracle? И почему вы храните цифры как 'varchar'? –

+0

В T-SQL (MS, Sybase) вы можете попробовать и использовать ['UPDATE ... FROM ...'] (https://msdn.microsoft.com/en-us/library/ms177523.aspx). Обратите внимание, что вам, вероятно, придется присоединиться к определенному идентификатору студента в обеих таблицах. – JimmyB

ответ

0

Вы не можете использовать P1Totals., потому что его не упоминается в качестве таблицы псевдонимов. В одном операторе обновления вы не можете указать псевдоним таблицы.

0

добавить

UPDATE StudentRegistration 
SET Year ='2016', 
Term = 'Term 1' 
from StudentRegistration 
left join P1Totals on --your reference 
where P1Totals.StudentTotals >='300' 
and P1Totals.StudentTotals <='400' 
+0

спасибо, но что вы подразумеваете под «вашей ссылкой»? –

Смежные вопросы