strSQL.Format("SELECT ECC, ECONo, Other2 FROM ECOModifyManage WHERE State='正式' AND ECONO IN (SELECT  ECONo FROM ECOHandout WHERE (ViewUser='' OR ViewUser IS NULL) AND Enpartment IN (SELECT Name FROM EnpartmentManage WHERE Manager='%s'))", m_userPrompt);

解决方案 »

  1.   

    strSQL.Format("SELECT ECC, ECONo, Other2 FROM ECOModifyManage a,(SELECT  ECONo FROM ECOHandout WHERE (ViewUser='' OR ViewUser IS NULL) b, (SELECT Name FROM EnpartmentManage WHERE Manager='%s') c WHERE a.State='正式' and a.ECONo=b.ECONo and a.Enpartment=c.Name)", m_userPrompt);
      

  2.   

    试试
    SELECT ECC, a.ECONo, Other2 FROM ECOModifyManage a 
    Inner join (select ECONo from ECOHandout where ViewUser='' or ViewUser is null) b 
    On a.ECONo=b.ECONo
    Inner Join (select name from EnpartmentManage where manager like '%s') c 
    On a.Enpartment=c.name where a.State='正式'
      

  3.   

    2楼的提示b附近有语法错
    3楼的提示列名Enpartment无效,实际上Enpartment是在表b中,我改过来了,也还是提示这样的错误
      

  4.   

    我自己这样写:是对的,但不知道效果是否相同,即查询出来的结果是否正确??
    strSQL.Format("SELECT a.ECC,a.ECONo, a.Other2 FROM ECOModifyManage a,ECOHandout b, EnpartmentManage c \
          WHERE a.State = '正式' AND a.ECONo=b.ECONO AND b.Enpartment=c.Name AND ( b.ViewUser = '' OR \
                   b.ViewUser IS NULL)  AND c.Manager='%s'",m_userPrompt);
      

  5.   

    表结构-------------->>>>>>>>>>>>>>>>>>>>
      

  6.   

    表ECOModifyManage:列名:  ECC,ECONO,Other2,...
    表ECOHandout:列名: ECOG,ECONo,Enpartment,ViewUser,...
    表Enpartment:列名:Code,Name,Manager,...
      

  7.   

    SELECT ECC, a.ECONo, Other2 FROM ECOModifyManage a 
    Inner join (select ECONo,Enpartment from ECOHandout where ViewUser='' or ViewUser is null) b 
    On a.ECONo=b.ECONo
    Inner Join (select name from Enpartment where manager like '%s') c 
    On b.Enpartment=c.name where a.State='正式'