--得到集团编码
SELECT DISTINCT jituanbianma  FROM pls..cust_sls 
WHERE 
--条件1
ref_num IN(SELECT cust_num FROM pls..customer WHERE cust_grade ='AA' AND is_group=0) 
--条件2
AND ref_num IN(SELECT cust_num FROM crm_visit WHERE area_code='3'  AND visit_date NOT IN(SELECT riqi FROM AM13 WHERE riqi>='2007/04/21' AND riqi<='2007/05/20')) 
--条件3
AND jituanbianma <>'' 
--条件4
AND area_code='3'
如何修改该SQL语句,加一个假字段 cust_Type,并给cust_Type赋值
达到:满足(条件2时) 即满足:ref_num IN(SELECT cust_num FROM crm_visit WHERE area_code='3'  AND visit_date NOT IN(SELECT riqi FROM AM13 WHERE riqi>='2007/04/21' AND riqi<='2007/05/20')) cust_Type='T'不满足(条件2时) 即不满足:ref_num IN(SELECT cust_num FROM crm_visit WHERE area_code='3'  AND visit_date NOT IN(SELECT riqi FROM AM13 WHERE riqi>='2007/04/21' AND riqi<='2007/05/20')) cust_Type='F'
高手急救。

解决方案 »

  1.   


    查询结果:由jituanbianma ,cust_Type 两列(字段)组成。
      

  2.   

    四个条件是And的关系,如果你说的不满足条件2那就是其值为false,四个中只要有一个为false,那就查不出记录了,还谈什么cust_Type='F'
      

  3.   

    我是楼主。
    我想把所有满足条件1、条件3、条件4的都提示,再加一个虚拟字段cust_type如果条件2也满足,cust_Type='T',否则 cust_Type='F'
      

  4.   

    我是楼主。
    我想把所有满足条件1、条件3、条件4的都显示,再加一个虚拟字段cust_type如果条件2也满足,cust_Type='T',否则 cust_Type='F'
      

  5.   

    这个意思?
    SELECT DISTINCT jituanbianma,
    case when exists(SELECT 1 FROM crm_visit WHERE area_code='3' AND visit_date NOT IN(SELECT riqi FROM AM13 WHERE riqi>='2007/04/21' AND riqi<='2007/05/20') and cust_num=a.ref_num) then 'T'
    else 'F'
    end cust_Type
    FROM pls..cust_sls  a
    WHERE 
    --条件1
    ref_num IN(SELECT cust_num FROM pls..customer WHERE cust_grade ='AA' AND is_group=0) 
    --条件3
    AND jituanbianma <>'' 
    --条件4
    AND area_code='3'
      

  6.   

    SBDE            T
    SDAU            T
    SDBM            F
    SDBM            T
    SDTH            T
    SGS0107         T
    SHAS            T
    SJAO            F
    SJAO            T
    SJAW            T
    SJYM            F
    SQFG            T
    SSAQ            F
    SSAQ            T
    -----------------------------------------
    按你改后的执行出现上面的结果。第一列值有重复的。如果第一列重复,并且第二列存在为'T'的纪录,
    只显示一行,第二列为'T'-----
    怎么修改?
      

  7.   

    我也不知道你是什么数据,姑且这样吧:
    select jituanbianma,max(cust_Type)
    from(
    SELECT DISTINCT jituanbianma,
    case when exists(SELECT 1 FROM crm_visit WHERE area_code='3' AND visit_date NOT IN(SELECT riqi FROM AM13 WHERE riqi>='2007/04/21' AND riqi<='2007/05/20') and cust_num=a.ref_num) then 'T'
    else 'F'
    end cust_Type
    FROM pls..cust_sls a
    WHERE 
    ref_num IN(SELECT cust_num FROM pls..customer WHERE cust_grade ='AA' AND is_group=0) 
    AND jituanbianma <>'' 
    AND area_code='3'
    )bb
    group by jituanbianma
      

  8.   

    脑力劳动网(http://www.nlld.net)是一个付费IT技术问答社区。目前注册送2元,如果您在那上面提问,网站可以资助你的提问1到3元,以便你得到满意的回答。
       你也可回答别人的提问,您的帐号上超过3元时,可以要求网站提现。