如何用乘法函数更新表?

时间:2016-09-13 09:34:27

标签: sql sql-server

当我尝试使用此查询更新我的表时

java -jar /localdisk/selenium/2.53.1/selenium-server-standalone-2.53.1.jar -port 0

消息是:

  

子查询返回的值超过1。这是不允许的   子查询跟随=,!=,<,< =,>,> =或当子查询用作   表达。

更新 我的桌子是sekolah

我的领域是:

类 月 总siswa 按比例按比例

3 个答案:

答案 0 :(得分:1)

如果两者都是同一张表,那么它会有所帮助:

UPDATE s SET s.rata-rata = (s.[total siswa]*12)
FROM sekolah s
where s.class='7IPA' and month(s.Date) = 08 

OR

UPDATE sekolah SET 
rata-rata = ([total siswa]*12) WHERE class='7IPA' and month(Date) = 08

答案 1 :(得分:1)

错误原因很明显。意思是,嵌套查询正在获取多行,而Update语句只搜索一个值。

两种解决方案

  1. 在嵌套的sql中使用SELECT TOP 1语句来获取单个值。
  2. 从Class表中删除重复项。

    update sekolah set [rata-rata] = 
    (select TOP 1 ([total siswa]*12) from class where [class]='7IPA' and     month([Date]) = 08) 
    where [class]='7IPA' and month([Date]) = 08
    

答案 2 :(得分:0)

更新sekolah t1加入sekolah t2     ON t1.class ='71PA'和t2.month = '08'    SET t1.rata-rata =(t1。[total siswa] * 12)