select RV.ID,RV.SaleCLientID,ClientName,MobilePhone,ParentID,LevelID,
SaleID,SaleName,VisitTime,Delay
from ReturnVisit as RV left join SaleClient as SC
 on RV.[SaleCLientID]=SC.[ID] left join Client as CT on SC.[ClientID]=CT.[ID]
 where Delay <> 0 and SaleID='13' and  datediff(week,VisitTime,getdate())=0 and  LevelID<>1
or RV.[SaleCLientID] =(
select SaleName,ParentID
from ReturnVisit as RV left join SaleClient as SC
 on RV.[SaleCLientID]=SC.[ID] 
 where Delay <> 0 and ParentID<>0 and SaleID='13' and  
datediff(week,VisitTime,getdate())=0 and  LevelID<>1)当没有用EXISTS引入子查询时在选择列表中只能指定一个表达式
介绍:
SaleClient表中 SaleCLientID为当前的SaleCLientID,parentID为以前的SaleCLientID
ReturnVisit 回访记录表
我根据当前SaleID=13把属于13的所有SaleClient的回访记录都查出来了。
可是我现在又想把 以前的SaleCLientID的数据也查出来,所以就先用select SaleName,ParentID
from ReturnVisit as RV left join SaleClient as SC
 on RV.[SaleCLientID]=SC.[ID] 
 where Delay <> 0 and ParentID<>0 and SaleID='13' and  
datediff(week,VisitTime,getdate())=0 and  LevelID<>1查出当前SaleID=13的parentID并准备把它当成条件来查询的,但是条件加上后,就报上面的
错误,请问什么改??

解决方案 »

  1.   

    RV.[SaleCLientID] =(
    select SaleName,ParentID
    from ReturnVisit as RV left join SaleClient as SC
     on RV.[SaleCLientID]=SC.[ID] 
     where Delay <> 0 and ParentID<>0 and SaleID='13' and  
    datediff(week,VisitTime,getdate())=0 and  LevelID<>1)暂不说其他,楼主从颜色字体里看出什么呢?外部是一个字段,而子查询却是两个字段,到底要等于哪个字段?第二点,能确定查询出来的parentID是一条数据么?不能是话外边用in,或者里面用top 1来限制。
      

  2.   

    RV.[SaleCLientID] =(
    select SaleName,ParentID
    from ReturnVisit as RV left join SaleClient as SC
     on RV.[SaleCLientID]=SC.[ID] 
     where Delay <> 0 and ParentID<>0 and SaleID='13' and  
    datediff(week,VisitTime,getdate())=0 and  LevelID<>1)--你这一句是查神马的?
      

  3.   

    十分感谢AcHerat的解答,是我马虎了,没看清,parentID能确定查询出来的是多条数据,多谢提醒用 in
    谢谢