12
返回列表 发新帖
楼主: Link_Chen

ABAP 兩內表關聯語法問題

[复制链接]
论坛徽章:
1
ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15
11#
 楼主| 发表于 2011-10-11 07:43 | 只看该作者
本帖最后由 Link_Chen 于 2011-10-11 08:02 编辑

原來的寫法會造成如下情況:
IT_LOT 資料:                            IT_LGPBE 資料:
MATNR  CHARG   LGPBE            MATNR  CHARG   LGPBE    QNTY
   A         A001        TT                  A          A001                    1                    
   D         D002       AA                  A          AB01                    2
                                                   C          C001                    1
                                                   D           D001                   3
                                                   D           D002                   2

按照原來的寫法最後IT_LGPBE會變成如下結果:
MATNR  CHARG   LGPBE    QNTY
    A         A001     TT           1
    A         AB01     TT           2
    C         C001    TT           1
    D         D001    TT            3
    D         D002    AA           2
在寫這個回覆的過程中我在想是否因為排序造成的,我會繼續測試

使用道具 举报

回复
论坛徽章:
13
祖国60周年纪念徽章
日期:2009-10-09 11:30:17ITPUB社区12周年站庆徽章
日期:2013-08-12 09:34:362013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00紫蛋头
日期:2012-02-28 16:00:05双黄蛋
日期:2012-01-09 13:48:452012新春纪念徽章
日期:2012-01-04 11:57:56ITPUB十周年纪念徽章
日期:2011-11-01 16:26:29ITPUB官方微博粉丝徽章
日期:2011-07-04 09:42:062011新春纪念徽章
日期:2011-02-18 11:42:49
12#
发表于 2011-10-11 09:32 | 只看该作者
虽然现在的结构和最初有点出入,但错误明显在于read table with key之后,没有判断sy-subrc = 0,再modify

使用道具 举报

回复
论坛徽章:
6
ITPUB十周年纪念徽章
日期:2011-11-01 16:25:512012新春纪念徽章
日期:2012-01-04 11:56:44复活蛋
日期:2012-03-15 16:15:06比亚迪
日期:2013-11-08 11:00:20优秀写手
日期:2015-01-09 06:00:14优秀写手
日期:2015-02-12 06:00:14
13#
发表于 2011-10-11 10:36 | 只看该作者
是否可以考虑在数据库中增加一随机TABLE,把内表%%BUDAT 的数据插入进去,再与你需要的表做一个JOIN?
做完后再DROP TABLE  (仅供参考)

使用道具 举报

回复
论坛徽章:
1
ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15
14#
 楼主| 发表于 2011-10-11 15:32 | 只看该作者
badron 发表于 2011-10-11 10:36
是否可以考虑在数据库中增加一随机TABLE,把内表%%BUDAT 的数据插入进去,再与你需要的表做一个JOIN?
做完 ...

我這是張報表,隨時有人需要查詢,請問是否可以這樣做,如果下產生隨機TABLE的命令?感謝!

使用道具 举报

回复
论坛徽章:
6
ITPUB十周年纪念徽章
日期:2011-11-01 16:25:512012新春纪念徽章
日期:2012-01-04 11:56:44复活蛋
日期:2012-03-15 16:15:06比亚迪
日期:2013-11-08 11:00:20优秀写手
日期:2015-01-09 06:00:14优秀写手
日期:2015-02-12 06:00:14
15#
发表于 2011-10-14 10:25 | 只看该作者
可以先生成一个随即字符串,以日期加时间为名称。   再用这个字串创建TABLE NAME。

如果报报查询得多的话,应该会牺牲一定的数据库性能~

使用道具 举报

回复
论坛徽章:
2
ERP板块每日发贴之星
日期:2011-09-05 01:01:01ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04
16#
发表于 2011-10-15 11:17 | 只看该作者
你那所谓最笨的方法其实就是最好的,代码越简单却有实现你的要求,用内表可以减少和数据服务器之间的交流次数,还提高速度,不过LOOP尽量还是不要多级嵌套,最多3层为好

使用道具 举报

回复
论坛徽章:
1
ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15
17#
 楼主| 发表于 2011-10-15 11:28 | 只看该作者
hanijk 发表于 2011-10-11 09:32
虽然现在的结构和最初有点出入,但错误明显在于read table with key之后,没有判断sy-subrc = 0,再modify

感謝,終於知道為什麼了.

使用道具 举报

回复
论坛徽章:
1
ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15
18#
 楼主| 发表于 2011-10-15 11:31 | 只看该作者
pwf825 发表于 2011-10-15 11:17
你那所谓最笨的方法其实就是最好的,代码越简单却有实现你的要求,用内表可以减少和数据服务器之间的交流次 ...

迴圈其實就是沒算法=n*n,我就是認為ABAP應該會有一些算法存在那怕是兩分法也能少一半的效能浪費.

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表