简单的SQL更新查询错误,我不知道如何解决

时间:2014-08-19 17:21:45

标签: sql select sql-update

我有两张桌子:

  

PS(尺寸(主键),价格)   销售额(....规模,数量,total_Price)

我试图执行此声明:

 update Sales
                set total_Price = (select price from PS, Sales 
where Sales.size = PS.size )*Quantity;

但我总是得到这个错误

  

SQL0811N标量全选,SELECT INTO语句或结果   VALUES INTO语句不止一行。

我知道错误是因为我在select语句中使用的子查询返回了多行,这就是我无法工作的原因。有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

PS中的ASSUMING大小是UNIQUE

update Sales
set total_Price = (SELECT max(PS.price) FROM PS PS
                  INNER JOIN  Sales S on S.Size = PS.Size)*Quantity;

我认为问题是您的销售表每个尺寸包含多个条目。因此,它与PS表中的价格重复。您需要该表中的最高价格,或者不同的值ASSUMING size是PS表中的唯一值。如果PS表中的大小不是唯一的,那么我需要重新考虑你想要做的事情。