select nvl(sum(point_num), 0), nvl(sum(inspect_m), 0), nvl(sum(inspect_f), 0), nvl(sum(inspect_all), 0), nvl(sum(fever_m), 0), nvl(sum(fever_f), 0), nvl(sum(fever_sg), 0), nvl(sum(fever_lg), 0), nvl(sum(fever_jh), 0), nvl(sum(fever_fy), 0), nvl(sum(fever_sars), 0), nvl(sum(fever_other), 0), nvl(sum(fever_keep), 0) from inspect_stat a,dict b where b.type='监测单位'and b.name=a.point_name(+)    and a.area_id = '011306' and  to_char(add_time,'yyyymmddhh24')<2003060817 and to_char(add_time,'yyyymmddhh24')>=2003060717 group by b.name;

解决方案 »

  1.   

    把add_time<'2003-06-08 17:00:00' and add_time>='2003-06-07 17:00:00' 改为:
    add_time < to_date('2003-06-08 17:00:00','yyyy-mm-dd hh24:mi:ss') and add_time>=to_date('2003-06-07 17:00:00','yyyy-mm-dd hh24:mi:ss')
      

  2.   

    把add_time<'2003-06-08 17:00:00' and add_time>='2003-06-07 17:00:00' 改为:
    add_time < to_date('20030608 17:00:00','yyyymmdd hh24:mi:ss') and add_time>=to_date('20030607 17:00:00','yyyymmdd hh24:mi:ss')
      

  3.   

    add_time<'2003-06-08 17:00:00' and add_time>='2003-06-07 17:00:00'
    是可以的!
      

  4.   

    在数据库里,add_time用的是varchar2()
      

  5.   

    add_time<'2003-06-08 17:00:00' and add_time>='2003-06-07 17:00:00'
    改为:
    to_char(to_date(add_time,'yyyy-mm-dd hh24:mi:ss'),'yyyymmddhh24')<2003060817 and  to_char(to_date(add_time,'yyyy-mm-dd hh24:mi:ss'),'yyyymmddhh24')>=2003060717
      

  6.   

    select nvl(sum(point_num), 0), nvl(sum(inspect_m), 0), nvl(sum(inspect_f), 0), nvl(sum(inspect_all), 0), nvl(sum(fever_m), 0), nvl(sum(fever_f), 0), nvl(sum(fever_sg), 0), nvl(sum(fever_lg), 0), nvl(sum(fever_jh), 0), nvl(sum(fever_fy), 0), nvl(sum(fever_sars), 0), nvl(sum(fever_other), 0), nvl(sum(fever_keep), 0) from inspect_stat, (select name from dict where type='监测单位' order by area_id) t where t.name=point_name(+) and area_id = '011306' group by name 一样不行
      

  7.   

    那么有没有area_id='011306'这个条件呢,你把这个值去掉试试?
    这个不是null的问题,是因为没有满足条件的结果导致。
      

  8.   

    select   nvl (sum (point_num), 0), nvl (sum (inspect_m), 0), nvl (sum (inspect_f), 0)
           , nvl (sum (inspect_all), 0), nvl (sum (fever_m), 0), nvl (sum (fever_f), 0)
           , nvl (sum (fever_sg), 0), nvl (sum (fever_lg), 0), nvl (sum (fever_jh), 0)
           , nvl (sum (fever_fy), 0), nvl (sum (fever_sars), 0), nvl (sum (fever_other), 0)
           , nvl (sum (fever_keep), 0)
        from inspect_stat, (select   name
                                from dict
                               where type = '&frac14;à&sup2;&acirc;&micro;&yen;&Icirc;&raquo;'
                            order by area_id) t
       where t.name = point_name(+)
         and add_time < '2003-06-08 17:00:00'
         and add_time >= '2003-06-07 17:00:00'
         and area_id = '011306'
    group by name;你的左连结从t连接到inspect_stat,就有可能出现在
    1、t中有纪录但是inspect_stat中找不到相应name的纪录;
    2、在该情况下,你的add_time条件显然是对inspect_stat表的,由于是null纪录,所以这些条件永远是不成立的
    3、最终结果是不会返回任何结果改一下条件:
       where t.name = point_name(+)
         and ((add_time < '2003-06-08 17:00:00' and add_time >= '2003-06-07 17:00:00')
              or add_time is null)
         and nvl(area_id,'011306') = '011306'
    group by name;
      

  9.   

    "select name,nvl(p_num,0),nvl(i_m,0),nvl(i_f,0),nvl(i_a,0),nvl(f_m,0),nvl(f_f,0),nvl(f" +
            "_sg,0),nvl(f_lg,0),nvl(f_jh,0),nvl(f_fy,0),nvl(f_sars,0),nvl(f_other,0),nvl(f_ke" +
            "ep,0) from (select point_name,sum(point_num) p_num, sum(inspect_m) i_m, sum(insp" +
            "ect_f) i_f, sum(inspect_all) i_a,sum(fever_m) f_m,sum(fever_f) f_f, sum(fever_sg" +
            ") f_sg, sum(fever_lg) f_lg,sum(fever_jh) f_jh, sum(fever_fy) f_fy, sum(fever_sar" +
            "s) f_sars, sum(fever_other) f_other, sum(fever_keep) f_keep from inspect_stat wh" +
            "ere add_time<'"+endTime+"' and add_time>='"+begTime+"' and area_id like '"+areaId+"%' group by point_name), (select * from dict where type='监测单位') t where t.name=point_name(+) order by t.area_id";