表结构:
ClientInfo   
客商编号 客商名称 联系人 ...
BuysProductInfo 
货品编号 供应商编号 货品名称 ....执行语句如下:
SELECT     b.货品编号,  
isnull((select  客商名称   from   ClientInfo   c  
 where   c.客商编号 = b.供应商编号   group   by   客商名称 ),'')   as   供应商名称
 FROM     BuysProductInfo b  提示错误如下:消息 512,级别 16,状态 1,第 1 行
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。

解决方案 »

  1.   

    SELECT b.货品编号, 
    isnull((select 客商名称 from ClientInfo c 
    where c.客商编号 = b.供应商编号 ),'') as 供应商名称
    FROM BuysProductInfo b SELECT b.货品编号, isnull(c.客商名称,'') 供应商名称
    FROM BuysProductInfo b left join ClientInfo c 
    on b.供应商编号 = c.客商编号
      

  2.   

    SELECT b.货品编号, 
    isnull((select top 1 客商名称 from ClientInfo c 
    where c.客商编号 = b.供应商编号 group by 客商名称 ),'') as 供应商名称
    FROM BuysProductInfo b 
      

  3.   

    select 客商名称 from ClientInfo c 
    where c.客商编号 = b.供应商编号 group by 客商名称 )
    作为select 列表中的元素,结果不能是一个集合
      

  4.   

    子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
      

  5.   

    SELECT b.货品编号, 
    isnull((select top 1 客商名称 from ClientInfo c 
    where c.客商编号 = b.供应商编号 group by 客商名称 ),'') as 供应商名称
    FROM BuysProductInfo b