比如我有开始日期2009-11-01日,结束日期2009-11-31日。每天工作量为15,假设每天已经完成5条,还有10条未完成。统计称报表如下:--日期--     --已完成条数--  --未完成条数--  --总条数--
2009-11-01   5                10               15
2009-11-02   5                10               15
2009-11-03   5                10               15
2009-11-04   5                10               15
2009-11-05   5                10               15
、、、、、、、、、、
2009-11-31   5                10               15由于我的开始日期与结束日期是动态的,所以我如何用动态sql来取得这中间的所有日期呢?

解决方案 »

  1.   

    是这个意思不?SQL> select sysdate+level-1 lvl,5,10,15 from dual connect by sysdate+level-1<sysdate+15;LVL                5         10         15
    --------- ---------- ---------- ----------
    08-DEC-09          5         10         15
    09-DEC-09          5         10         15
    10-DEC-09          5         10         15
    11-DEC-09          5         10         15
    12-DEC-09          5         10         15
    13-DEC-09          5         10         15
    14-DEC-09          5         10         15
    15-DEC-09          5         10         15
    16-DEC-09          5         10         15
    17-DEC-09          5         10         15
    18-DEC-09          5         10         15LVL                5         10         15
    --------- ---------- ---------- ----------
    19-DEC-09          5         10         15
    20-DEC-09          5         10         15
    21-DEC-09          5         10         15
    22-DEC-09          5         10         1515 rows selected.
      

  2.   


    恩是的,但是你的前面的日期可以标准点不?要yyyy-mm-dd的格式啊!
      

  3.   

    用to_char自己转换一下呀
    SQL> select to_char(sysdate+level-1,'yyyy-mm-dd') from dual connect by sysdate+level-1<sysdate+15;TO_CHAR(SYSDATE+LEVEL-1,'YYYY-
    ------------------------------
    2009-12-08
    2009-12-09
    2009-12-10
    2009-12-11
    2009-12-12
    2009-12-13
    2009-12-14
    2009-12-15
    2009-12-16
    2009-12-17
    2009-12-18
    2009-12-19
    2009-12-20
    2009-12-21
    2009-12-2215 rows selected