举例:一个月最大31天,如果是二月份就只有28天,但是如果想取得31天,前28天是正常的,29~31日用NULL补齐,在ORACLE中可以做到吗?

解决方案 »

  1.   

    表中存储的数据是1天一条记录,一个月有几天就有几条数据,但是在打印帐票的时候要把一个月的纪录横着打印出来,于是想把模板固定为31天,然后get(i)负值。
      

  2.   

    用类似
    select rownum rn from dual connect by rownum<=31为临时表跟你的表做关联就可以了
      

  3.   

    SELECT 
        TO_CHAR(TO_DATE(MA.MONTH_ALL, 'yyyy-mm-dd'),'dd') AS MONTH_DAY,
        TO_CHAR(TO_DATE(MA.MONTH_ALL,'yyyy-mm-dd'),'dy') AS YOUBI
    FROM (
    SELECT
        TO_CHAR(TO_DATE(指定月份,'yyyy-mm') + LEVEL-1,'yyyy-mm-dd') AS MONTH_ALL    
    FROM 
        DUAL
    CONNECT BY LEVEL <= TO_NUMBER(TO_CHAR(LAST_DAY(TO_DATE(指定月份,'yyyy-mm')),'dd'))
    ) MA关联可以吗?我还要取得指定月份每一天是星期几
      

  4.   

    还是不行,最好可以用sql直接取出来。大家继续帮帮我啊。
      

  5.   

     select day from (SELECT to_date('201002', 'yyyymm') + rownum - 1 day
       FROM dual
     CONNECT BY rownum <= 31)
     where to_char(day,'yyyymm')='201002'
    拿上面得表跟你按天group by后的表做left join就可以了.
    201002对应你的制定月份