我运行以下查询:
SELECT
orderdetails.sku,
orderdetails.mf_item_number,
orderdetails.qty,
orderdetails.price,
supplier.supplierid,
supplier.suppliername,
supplier.dropshipfees,
cost = (SELECT supplier_item.price
FROM supplier_item,
orderdetails,
supplier
WHERE supplier_item.sku = orderdetails.sku
AND supplier_item.supplierid = supplier.supplierid)
FROM orderdetails,
supplier,
group_master
WHERE invoiceid = '339740'
AND orderdetails.mfr_id = supplier.supplierid
AND group_master.sku = orderdetails.sku
我得到以下错误:
消息512,第16级,状态% 1,第2行子查询返回了多个值。当子查询跟在=、!=、<、<=、>、>=之后或子查询用作表达式时,不允许这样做。
有什么想法吗?
发布于 2010-04-16 22:18:23
试试这个:
SELECT
od.Sku,
od.mf_item_number,
od.Qty,
od.Price,
s.SupplierId,
s.SupplierName,
s.DropShipFees,
si.Price as cost
FROM
OrderDetails od
INNER JOIN Supplier s on s.SupplierId = od.Mfr_ID
INNER JOIN Group_Master gm on gm.Sku = od.Sku
INNER JOIN Supplier_Item si on si.SKU = od.Sku and si.SupplierId = s.SupplierID
WHERE
od.invoiceid = '339740'
这将返回除了cost
列之外的多个相同的行。查看返回的不同成本值,并找出导致不同值的原因。然后询问某人他们想要的成本值,并将条件添加到将选择该成本的查询中。
发布于 2010-10-12 21:27:45
检查您试图对其执行查询的表上是否有任何触发器。当他们试图运行表上的update/select/insert触发器时,有时会抛出此错误。
您可以修改您的查询以禁用触发器,如果触发器没有,则需要为您试图运行的任何查询执行触发器。
ALTER TABLE your_table DISABLE TRIGGER [the_trigger_name]
UPDATE your_table
SET Gender = 'Female'
WHERE (Gender = 'Male')
ALTER TABLE your_table ENABLE TRIGGER [the_trigger_name]
发布于 2013-09-11 13:57:32
SELECT COLUMN
FROM TABLE
WHERE columns_name
IN ( SELECT COLUMN FROM TABLE WHERE columns_name = 'value');
注意:当我们使用子查询时,我们必须关注以下几点:
)
https://stackoverflow.com/questions/2653188
复制相似问题