for i in months_between(日期2,日期1)+1 loop
  select count(*) from ... where ...= add_months(日期1,i-1);
 ...
...
...end loop;

解决方案 »

  1.   

    select to_char(field,'mm'),sum(field2) where field>=to_date('date1','mm-dd-yyyy') and field<=to_date('date2','mm-dd-yyyy')  group by to_char(field,'mm')
      

  2.   

    select to_char(field,'mm'),sum(field2) where field>=to_date('date1','mm-dd-yyyy') and field<=to_date('date2','mm-dd-yyyy')  group by to_char(field,'mm')
    我想问你!既然没有数据为什么要显示!
    你不是自相矛盾吗?
    如果一定要那样
    就可以这样
    declare 
    li1 number(2,0);
    li2 number(2,0);
    li3 number(2,0);
    v_month varchar2(2);
    v_sum number(10,0);
    begin 
    li1=to_number(to_char('05-01-2001','mm'));
    li2=to_number(to_char('07-01-2001','mm'))
    for li3 in li1..li3 loop
      select  li3,sum(a) into v_month, v_sum from tablename where to_char(field,'mm-yyyy')=to_char('05-01-2001','mm-yyyy');
    end loop;
    有些问题!~其实应该不会这样的?