SELECT  T0.slpcode 销售顾问编号,T0.slpname 销售员,
(select count(cardcode) from opr1 T1 left join oopr T2 on T1.opprid=T2.opprid  where 
T2.slpcode=T0.slpcode )  进店数量,
(select count(T2.cardcode) from opr1 T1 left join oopr T2 on T1.opprid=T2.opprid inner join ocrd 
T3 on T3.cardcode=T2.cardcode
   where T2.slpcode=T0.slpcode and (t3.phone1<>'' or t3.phone2<>'' or t3.cellular<>'')
group by T2.cardcode)留电数量  from oslp  T0 
消息 512,级别 16,状态 1,第 1 行
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。

解决方案 »

  1.   

    select count(T2.cardcode) from opr1 T1 left join oopr T2 on T1.opprid=T2.opprid inner join ocrd
    T3 on T3.cardcode=T2.cardcode
      where T2.slpcode=T0.slpcode and (t3.phone1 <>'' or t3.phone2 <>'' or t3.cellular <>'')
    group by T2.cardcode -- group by 会产生多个 count() 结果。
      

  2.   


    select count(T2.cardcode) from opr1 T1 left join oopr T2 on T1.opprid=T2.opprid inner join ocrd
    T3 on T3.cardcode=T2.cardcode
      where T2.slpcode=T0.slpcode and (t3.phone1 <>'' or t3.phone2 <>'' or t3.cellular <>'')
    group by T2.cardcode这一段为啥要加个group by 
      

  3.   

    恩,我已经实现了,呵呵,,的确是group by 的问题。刚刚接触。。有点晕。谢谢各位。