循环ebs的AR会计期,分期显示每一期天数

billlyh 2013-11-15 11:52:34
ebs r12开发
循环open的AR会计期表gl_period_statuses,例如打开的会计期为2013-10,2013-11,2013-12.则打开的会计期数为3,则循环3次,第一次显示10期天数为31,第一次显示11期天数为30,第三次显示12期天数为31
结果如下:
期间 天数
2013-10 31
2013-11 30
2013-12 31
用pl/sql开发,求程序
...全文
136 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CT_LXL 2013-11-17
  • 打赏
  • 举报
回复
借#1 楼的,
select ym as"期间",to_char(last_day(to_date(rows.ym,'yyyy-mm')),'dd')"天数" from gl_period_statuses;
漠北雁 2013-11-16
  • 打赏
  • 举报
回复
引用 2 楼 chenjiang89 的回复:
1#用sp?难道一个sql搞不定?
看楼主要求。
大话EPM 2013-11-16
  • 打赏
  • 举报
回复
1#用sp?难道一个sql搞不定?
漠北雁 2013-11-16
  • 打赏
  • 举报
回复

--查询表资料
SELECT * FROM  gl_period_statuses;

YM     
2013-07
2013-08
2013-09
2013-10
2013-11
2013-12

--创建procedure
CREATE OR REPLACE procedure test as
 cnt varchar2(3);

begin
    dbms_output.put_line('期间'||'       '||'天数');--此处只用于测试,一般procedure不会这么写
    for rows in (select ym from gl_period_statuses) loop
    select to_char(last_day(to_date(rows.ym,'yyyy-mm')),'dd') into cnt  from dual;
    dbms_output.put_line(rows.ym||'     '||cnt);
    end loop;
    EXCEPTION WHEN OTHERS THEN 
    RAISE;
end test;

--调用
exec test;

--执行结果

         期间       天数                     
         2013-07     31                      
         2013-08     31                      
         2013-09     30                      
         2013-10     31                      
         2013-11     30                      
         2013-12     31
                      
         Total execution time 0.016 sec.     

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧