小弟是一菜菜鸟,最近修改一个程序,要加入一个功能,在依样画葫芦的过程中碰到这个问题:
原代码如下:
sql2 = "select substr(sljsdw,1,"&dwhow&") as lrdw,count(*) as howzs,sum(decode(ErrorID,0,0,1)) as howbxx,sum(decode(xzcs,null,1,0)) as howxzcs,sum(decode(XZBW,null,1,0)) as howxzbw from" 
sql2 = sql2 & " (select t.*,decode(xzcs,null,1,0)+decode(XZBW,null,1,0) as ErrorID from b_asj_aj t where deleteflag='0' and ajlx='01' and fasjzz>=to_date('"&qssj&"','yyyy-mm-dd') and fasjzz<=to_date('"&jssj&"','yyyy-mm-dd') and sljsdw like '"&lrdw&"%')"
sql2 = sql2 & " group by substr(sljsdw,1,"&dwhow&")"
小弟加入sql3,内容如下:
sql3 = "select substr(sljsdw,1,"&dwhow&") as lrdw,count(*) as howzs,sum(decode(sign(sljjsj+1-sl_lrsj),-1,1,0)) as howbjs from b_asj_aj t where deleteflag='0' and ajlx='01' and fasjzz>=to_date('"&qssj&"','yyyy-mm-dd') and fasjzz<=to_date('"&jssj&"','yyyy-mm-dd') and sljsdw like '"&lrdw&"%')"
sql3 = sql3 & " group by substr(sljsdw,1,"&dwhow&")"
如果将sum(decode(sign(sljjsj+1-sl_lrsj),-1,1,0)) as howbjs直接写入sql2中可以运行,可是独立到sql3中却老是提示出错。小弟最近已是心力交瘁,望哪位高手能帮我指点指点啊,谢谢!

解决方案 »

  1.   

    补充一下,加入sql3语句后提示“在对应所需名称或序数的集合中,未找到项目”,就是指“howbjs
      

  2.   

    看的让人头晕.
    调试的时候应该把sql3最终的语句拿出来到oracle上执行一下,就很容易看出问题了.我看了以下,第一句sql3最后一个括号多了,改一下应该就可以了
    sql3 = "select substr(sljsdw,1,"&dwhow&") as lrdw,count(*) as howzs,sum(decode(sign(sljjsj+1-sl_lrsj),-1,1,0)) as howbjs from b_asj_aj t where deleteflag='0' and ajlx='01' and fasjzz>=to_date('"&qssj&"','yyyy-mm-dd') and fasjzz <=to_date('"&jssj&"','yyyy-mm-dd') and sljsdw like '"&lrdw&"%'" 
      

  3.   

    不好意思,是截出来的一段代码,可能是让人觉得比较混乱,应该这样说,在sql2中蓝色部分是不会变也是没问题的,现在是红色的部分要在绿色部分分别加入两个条件分别检索两次,能不能通过修改sql2来实现?还是要通过新的sql3和sql4来实现?
    sql2 = "select substr(sljsdw,1,"&dwhow&") as lrdw,count(*) as howzs,sum(decode(ErrorID,0,0,1)) as howbxx,sum(decode(xzcs,null,1,0)) as howxzcs,sum(decode(XZBW,null,1,0)) as howxzbw,sum(decode(sign(sljjsj+1-sl_lrsj),-1,1,0)) as howbjs from" 
    sql2 = sql2 & " (select t.*,decode(xzcs,null,1,0)+decode(XZBW,null,1,0) as ErrorID from b_asj_aj t where deleteflag='0' and ajlx='01' and fasjzz>=to_date('"&qssj&"','yyyy-mm-dd') and fasjzz <=to_date('"&jssj&"','yyyy-mm-dd') and sljsdw like '"&lrdw&"%')" 
    sql2 = sql2 & " group by substr(sljsdw,1,"&dwhow&")"