Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 基于另一个表的条件结果更新表_Sql - Fatal编程技术网

Sql 基于另一个表的条件结果更新表

Sql 基于另一个表的条件结果更新表,sql,Sql,我试图找出下面的sql语句的错误。我得到以下错误: 无法绑定多部分标识符“P1Totals.StudentTotals” 我做错了什么 UPDATE StudentRegistration SET Year ='2016', Term = 'Term 1' where P1Totals.StudentTotals >='300' and P1Totals.StudentTotals <='400' 更新StudentRegistration 设定年份='2016', 术

我试图找出下面的sql语句的错误。我得到以下错误:

无法绑定多部分标识符“P1Totals.StudentTotals”

我做错了什么

UPDATE StudentRegistration
  SET Year ='2016',
  Term = 'Term 1'
where P1Totals.StudentTotals >='300'
  and P1Totals.StudentTotals <='400'
更新StudentRegistration
设定年份='2016',
术语='术语1'
其中P1Totals.StudentTotals>='300'

和P1Totals.StudentTotals您不能使用
P1Totals.
,因为它没有提到作为表别名。 在单个update语句中,不能给出表别名。

add

UPDATE StudentRegistration 
SET Year ='2016',
Term = 'Term 1'
from StudentRegistration
left join P1Totals on --your reference
where P1Totals.StudentTotals >='300'
and P1Totals.StudentTotals <='400'
更新StudentRegistration
设定年份='2016',
术语='术语1'
从学生注册
左键打开--您的引用
其中P1Totals.StudentTotals>='300'

和P1Totals.StudentTotals您有一个对表别名的引用,
P1Totals
,但该表在任何地方都没有提及。从这个查询中不可能知道你想做什么。示例数据和所需结果,以及您正在使用的数据库的标记都会有所帮助。您使用的是哪种DBMS?博士后?神谕为什么要将数字存储为
varchar
?在T-SQL(MS,Sybase)中,您可以尝试使用。请注意,您可能需要在两个表中加入一些学生id。我使用sql server 2008,我有两个表,studentregistration包含学生数据,而p1totals包含学生考试分数。我正在尝试为p1totals表中考试总分在300到400之间的所有学生更新studentregistration表。