我有两张桌子:
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语句中使用的子查询返回了多行,这就是我无法工作的原因。有人可以帮我解决这个问题。
答案 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表中的大小不是唯一的,那么我需要重新考虑你想要做的事情。