select b.flight_date, nvl(passenger_num, 0) passenger_num
  from (select trunc(m.flight_date) flight_date,
               sum(passenger_num) passenger_num
          from fl_equip_act_ensure_lg m
         group by trunc(m.flight_date)) a,
       (select trunc(d2) + rownum - 1 as flight_date
          from (select min(flight_date) d2,
                       max(trunc(flight_date)) - min(trunc(flight_date)) + 1 dc
                  from fl_equip_act_ensure_lg)
        connect by rownum < dc + 1) b
 where a.flight_date(+) = b.flight_date
 order by b.flight_date
我想取某个时间范围的值,如2009-03-18到2009-03-24怎么写,谢谢了?

解决方案 »

  1.   

    加以下where条件
    TO_CHAR(b.flight_date, 'YYYY-MM-DD') < '2009-03-24' 
    and TO_CHAR(b.flight_date, 'YYYY-MM-DD') > '2009-03-18'
      

  2.   

    用between
    where a.flight_date(+) = b.flight_date 
    and to_char(日期,'yyyy-mm-dd') between '2009-03-18' and '2009-03-24' 
    order by b.flight_date 
      

  3.   

    运行之后0行任何数据
    select b.flight_date, nvl(passenger_num, 0) passenger_num
      from (select trunc(m.flight_date) flight_date,
                   sum(passenger_num) passenger_num
              from fl_equip_act_ensure_lg m
             group by trunc(m.flight_date)) a,
           (select trunc(d2) + rownum - 1 as flight_date
              from (select min(flight_date) d2,
                           max(trunc(flight_date)) - min(trunc(flight_date)) + 1 dc
                      from fl_equip_act_ensure_lg)
            connect by rownum < dc + 1) b
     where a.flight_date(+) = b.flight_date
       and to_char(b.flight_date, 'yyyy-mm-dd') between '2009-03-18' and
           '2009-03-24'
     order by b.flight_date
      

  4.   

    select trunc(d2) + rownum - 1 as flight_date
              from (select min(flight_date) d2,
                          max(trunc(flight_date)) - min(trunc(flight_date)) + 1 dc
                      from fl_equip_act_ensure_lg)
            connect by rownum < dc + 1
    你把这一句执行到结果截一部分出来看看