壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2594|回复: 10

科目组合的SQL

[复制链接]
发表于 2008/1/23 16:59:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
要求将科目组合拆成段值和名称,下面是我的SQL,怎么样的SQL写运行比较快啊
select glcc.code_combination_id,glcc.segment1,glcc.segment2,glcc.segment3,glcc.segment4,glcc.segment5,
comp.description comp_desc,acct.description acct_desc,dept.description dept_desc,item.description item_desc,resv.description resv_desc
from gl_code_combinations glcc,
(SELECT flex_value,description FROM fnd_flex_values_vl ffv where flex_value_set_id=1005958) comp,
(SELECT flex_value,description FROM fnd_flex_values_vl ffv where flex_value_set_id=1005959) acct,
(SELECT flex_value,description FROM fnd_flex_values_vl ffv where flex_value_set_id=1005960) dept,
(SELECT flex_value,description FROM fnd_flex_values_vl ffv where flex_value_set_id=1005961) item,
(SELECT flex_value,description FROM fnd_flex_values_vl ffv where flex_value_set_id=1005962) resv
where glcc.segment1=comp.flex_value and glcc.segment2=acct.flex_value and glcc.segment3=dept.flex_value and
glcc.segment4=item.flex_value and glcc.segment5=resv.flex_value
发表于 2008/1/24 09:09:57 | 显示全部楼层
不錯! :/pz
发表于 2008/1/24 12:50:42 | 显示全部楼层
寫個Function,比這樣快.
发表于 2008/1/28 10:37:48 | 显示全部楼层
from  fnd_flex_values_vl    ffv1,
        fnd_flex_values_vl    ffv2,
        .............                ffv5
这样会好么?
发表于 2008/1/28 15:02:30 | 显示全部楼层
用函数比较快
发表于 2008/1/28 16:16:58 | 显示全部楼层
呵呵,知道什么意思就好了,这个不同公司开的弹性域不同
发表于 2008/2/1 22:20:08 | 显示全部楼层
学习一下,谢谢
 楼主| 发表于 2008/3/14 15:52:53 | 显示全部楼层
实在比较慢,只好弄成函数了,不知道有没有现成的PACKAGE可以调用
FUNCTION Get_Account_description(p_sob_id in number,
                                 p_seg1   in varchar2,
                                 p_seg2   in varchar2,
                                 p_seg3   in varchar2,
                                 p_seg4   in varchar2,
                                 p_seg5   in varchar2) RETURN varchar2 IS

  cursor c_acc(p_sob_id in number, p_seg1 in varchar2, p_seg2 in varchar2, p_seg3 in varchar2, p_seg4 in varchar2, p_seg5 in varchar2) is
    select ffv.description
      from fnd_id_flex_segments fifs,
           gl_sets_of_books     gsb,
           fnd_flex_values_vl   ffv
     where fifs.application_id = 101
       and fifs.id_flex_code = 'GL#'
       and fifs.id_flex_num = gsb.chart_of_accounts_id
       and gsb.set_of_books_id = p_sob_id
       and ffv.flex_value_set_id = fifs.flex_value_set_id
       and ((fifs.segment_num = 1 and ffv.flex_value = p_seg1) or
           (fifs.segment_num = 2 and ffv.flex_value = p_seg2) or
           (fifs.segment_num = 3 and ffv.flex_value = p_seg3) or
           (fifs.segment_num = 4 and ffv.flex_value = p_seg4) or
           (fifs.segment_num = 5 and ffv.flex_value = p_seg5));

  lc_acc_desc varchar2(240) := '';
  lc_cnt      number := 0;
begin
  lc_acc_desc := '';
  for rec_acc in c_acc(p_sob_id, p_seg1, p_seg2, p_seg3, p_seg4, p_seg5) loop
    lc_cnt := lc_cnt + 1;
    if (lc_cnt = 1) then
      lc_acc_desc := rec_acc.description;
    else
      lc_acc_desc := lc_acc_desc || '+' || rec_acc.description;
    end if;
  end loop;
  return(lc_acc_desc);
END;

[ 本帖最后由 appleteam 于 2008-3-14 15:56 编辑 ]
发表于 2008/3/15 08:47:39 | 显示全部楼层
gl 模块已经有支持这个package,你稍微查一下。

fnd%flex%pkg

或者gl%flex%pkg

以前处理过,不过还不是很快。 方法都差不多。
发表于 2008/3/18 16:39:43 | 显示全部楼层
,看不懂啊.我不会编程
 楼主| 发表于 2008/3/18 17:16:17 | 显示全部楼层
原帖由 goodhawk 于 2008-3-15 08:47 发表
gl 模块已经有支持这个package,你稍微查一下。

fnd%flex%pkg

或者gl%flex%pkg

以前处理过,不过还不是很快。 方法都差不多。


谢谢,是gl_flexfields_pkg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 12:53 , Processed in 0.018260 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表