【发布时间】:2019-11-15 13:29:38
【问题描述】:
我有一张表格,其中存储了不同商店的产品价格。 出口 A 有一个商品价格为 2 欧元的百事可乐,出口 B 以 2.50 欧元的价格出售百事可乐。现在我需要将所有商品的价格设置为彼此相等,这样 2 欧元应该变成 2.50。
我尝试了以下方法:
update PoscardOutlet_Default
set Poscard_Outlet_ItemPrice = (select Poscard_Outlet_ItemPrice
from PoscardOutlet_Default
where Poscard_Outlet_OutletPointer = 1)
where Poscard_Outlet_OutletPointer = 2
但我收到此错误:
消息 512,第 16 级,状态 1,第 2 行
子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。声明已终止。
我希望奥特莱斯 2 中的所有商品与奥特莱斯 1 中的商品价格相同。
【问题讨论】:
-
您的问题和您的查询彼此无关。 “产品”在哪里?过滤来自哪里?
-
子查询需要关联,即包含引用主表的条件。 (主键的东西。)
-
那出口A中的百事可乐和出口B中的百事必须有2列相关,每个表1,对吧?
标签: sql sql-server