我运行以下查询:
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子查询返回的值大于1。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,这是不允许的。
有任何想法吗?
试试这个:
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
列之外相同的多行。查看返回的不同成本值,并找出导致这些不同值的原因。然后询问某人他们想要哪个成本值,然后将条件添加到查询中以选择该成本。
问题内容: 我正在尝试根据它们的出现来更新某些字段。如果它们只发生一次,我将更新一些状态字段。 我当前的代码如下: 这将返回类似于标题中的错误的错误: 是否有其他易于理解/简单的解决方案? 问题答案: 使用关键字而不是等于运算符,如下所示: 使用要求子查询返回恰好1个结果。关键字适用于列表。
问题内容: 我的查询导致以下错误: 消息512,级别16,状态1,过程Item_insupd,第17行 子查询返回了多个值。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。 询问: 我怀疑这种情况的发生是因为我的子查询不包含,但是不幸的是,我不知道如何构造正确的子句。 问题答案: 我怀疑问题出在此字符串中(您的代码中的第26行): 看起来像返回多个行,所以您遇到了错
问题内容: 桌子: 我的查询: 我收到“ MySQL子查询返回多个行”错误。 我知道此查询可以使用以下查询的解决方法: 然后使用php循环遍历结果并执行以下查询以获取和回显它: 但是我认为可能会有更好的解决方案? 问题答案: 简单的解决方法是在子查询中添加一个子句: 一个更好的选择(就性能而言)是使用联接:
问题内容: 我在MS Access中有如下查询 我已将其放入报告中,现在当尝试查看报告时,它会显示警报“ 子查询中不允许使用多级GROUP BY子句 ” 我没有得到的是查询中什至没有任何GROUP BY子句,所以为什么返回此错误? 问题答案: 来自Allen Browne出色的Access技巧网站:生存子查询 错误:“不允许多级分组” 您花了半个小时用子查询来构建查询,并验证它是否可以正常工作。您
此查询由Django ORM使用RAWSQL生成: 这是一个错误 1242-子查询返回超过1行 这是子查询的结果 我读了MYSQL文档,但我不明白为什么返回两行会有问题。我试过很多替代方法。 问题出在哪里?
问题内容: 我在PHP中运行一个脚本,该脚本uisng循环为MySQL创建了一个字符串查询。 执行脚本后,出现以下错误: “您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以在’UPDATE BANNERS SET pos = 1 WHERE BID = 5; UPDATE BANNERS SET pos = 2 WHERE BID = 1’附近使用正确的语法。在第2行 在错误