如何解决子查询返回的多个值错误

本文关键字:返回 错误 查询 何解决 解决 | 更新日期: 2023-09-27 18:34:11

我正在尝试执行此存储过程

ELSE IF(@Item_Type='Frames')
BEGIN
    SELECT 
       ID.Selling_Price, --0
       ID.Purchase_Price,--1
       @Discount AS Discount,--2
       IH.Item_Name AS Item_Group_Name,--3
       @Item_Group_Code AS Item_Group_Code,--4
       FD.Item_Code,        
       ID.Item_Name,
       FD.Material,     
       FD.Color,
       FD.RIM,
       FD.Frame_Code
    FROM 
       Frame_Details AS FD 
    LEFT JOIN 
       Item_Details AS ID ON FD.Item_Code = ID.Item_Code
    LEFT JOIN 
       Item_Header AS IH ON IH.Item_G_Code = ID.Item_G_Code             
    WHERE 
       FD.Status = '0' 
       AND FD.Item_Code = @Item_Code 
    GROUP BY  
       ID.Selling_Price, ID.Purchase_Price, IH.Item_Name, 
       FD.Item_Code, ID.Item_Name, FD.Material, FD.Color, FD.RIM, FD.Frame_Code
END

它将无法成功执行。.这是我收到的错误消息

子查询返回了 1 个以上的值。当子查询跟在 =、!=、<、<= 、>、>= 后面或子查询用作表达式时,不允许这样做。

之前尝试过几个例子,但它们对我不起作用。

如何解决子查询返回的多个值错误

子查询似乎返回了多个记录。在这种情况下,结果是一个集合,而不是单个值,而你的方案中不允许这样做。若要避免此问题,可以尝试联接此子查询的结果,或使用 TOP 1 或 max 或 sum 或 AVG 仅返回一个值。

谢谢