SELECT * FROM ZY_CJYZ WHERE FYLB IN(SELECT JLXH FROM ZD_ZYHS1 WHERE HSFF=10 AND FLXH=1)--先不管字段类型,就上述语句而言,根本不是楼主想要的结果

解决方案 »

  1.   

    --改成这样:SELECT a.* FROM ZY_CJYZ a,(SELECT JLXH FROM ZD_ZYHS1 WHERE HSFF=10 AND FLXH=1) b
    where b.JLXH like a.FYLB+',%'
    or b.JLXH like '%,'+a.FYLB+',%'
    or b.JLXH like '%,'+a.FYLB
      

  2.   

    --或者:SELECT a.* FROM ZY_CJYZ a
    where exists(
    SELECT JLXH FROM ZD_ZYHS1 
    WHERE HSFF=10 AND FLXH=1
    and( 
    JLXH like a.FYLB+',%'
    or JLXH like '%,'+a.FYLB+',%'
    or JLXH like '%,'+a.FYLB))
      

  3.   

    SELECT sum(a.fy) FROM ZY_CJYZ a,(SELECT jlxh=SUBSTRING(jlxh,1,1000) FROM ZD_ZYHS1 WHERE HSFF=10 AND FLXH=1) b
    where b.JLXH like CAST(a.FYLB AS VARCHAR(1000))+',%'
    or b.JLXH like '%,'+CAST(a.FYLB AS VARCHAR(1000))+',%'
    or b.JLXH like '%,'+CAST(a.FYLB AS VARCHAR(1000))邹大哥真棒 在你原来写的语句的基础我做了下修改,现在就是我想要的结果了,谢谢!!
      

  4.   

    根据 SELECT jlxh=SUBSTRING(jlxh,1,1000) FROM ZD_ZYHS1 WHERE HSFF=10 AND FLXH=1 的结果 1,2,3。。
    sum(a.fy) 是统计  FYLB(费用类别)  为1,2,3的 呵呵 现在可以了