[ABAP] SELECT ... INTO CORRESPONDING FIELDS OF TABLE 的一个盲点
来源:互联网 发布:做淘宝主图用什么软件 编辑:程序博客网 时间:2024/06/07 13:16
前阵子同事拿来一段财务报表的代码给我看,说是一个自由顾问写的,然后每当做的凭证项目金额完全一样的时候只会有一条会被统计进去,很不对。
一边debug一边看着,不禁兴叹那个顾问确实很有想法,竟然自己开发了一个财务版本的模板,即有了他那套东西,走到哪里财务报表都直接可以用他的,只需在版本里填充些需要的条目,而代码确实是一劳永逸的。感慨之余,也终于看到了错误的根源所在:
DATA: BEGIN OF I_BSEG OCCURS 0, BUKRS LIKE BKPF-BUKRS, BELNR LIKE BKPF-BELNR, GJAHR LIKE BKPF-GJAHR, SHKZG LIKE BSEG-SHKZG, DMBTR LIKE BSEG-DMBTR, "amount in Local currency LOKKT LIKE BSEG-LOKKT, "alternative account HKONT LIKE BSEG-HKONT, END OF I_BSEG.……SELECT BUKRS BELNR GJAHR SHKZG DMBTR LOKKT HKONT INTO CORRESPONDING FIELDS OF TABLE I_BSEG FROM BSEG FOR ALL ENTRIES IN I_BKPF WHERE BUKRS = I_BKPF-BUKRS AND BELNR = I_BKPF-BELNR AND GJAHR = I_BKPF-GJAHR.
当代码中红色标出的那些field在两(多)个不同凭证中体现的值一样,即数据库表中两(多)条记录的这些field值一样,该处的这个SELECT用法只会取到一条记录。
修正方法的话,笔者此处想到两个,一个是在上面红色field后面加一个能区别不同记录的field,如行项目号BUZEI;另外一个方法就是老老实实按照常规的LOOP,代码如下:
LOOP AT I_BKPF. SELECT BUKRS BELNR GJAHR SHKZG DMBTR LOKKT HKONT FROM BSEG INTO I_BSEG WHERE BUKRS = I_BKPF-BUKRS AND BELNR = I_BKPF-BELNR AND GJAHR = I_BKPF-GJAHR. APPEND I_BSEG. ENDSELECT. ENDLOOP.
- [ABAP] SELECT ... INTO CORRESPONDING FIELDS OF TABLE 的一个盲点
- ABAP SELECT-INTO用法
- mysql select into table
- SELECT INTO , INSERT INTO SELECT 和 CREATE TABLE AS SELECT 的区别
- 另一种insert into table()select... 语句的用法
- SELECT... INTO TABLE与query的小发现
- create table as select 和 create table 再insert into select 的差异
- 关于IFrame的一个盲点
- 把一个表的数据插入到另一个表:INSERT INTO SELECT / SELECT INTO
- Insert into select 与create table as的性能测试及create table
- "CREATE TABLE AS SELECT"以及"INSERT INTO AS SELECT"语句的优化
- Select into from 与 Create Table As
- select * from Table into outfile '/路径/文件名'
- sqlserver——insert into /select into/create table/drop
- mysql 的select into
- select...into的用法
- mysql 的 select into
- SELECT INTO , INSERT INTO SELECT 和 CREATE TABLE AS SELECT 性能对比
- ffmpeg qscale 等高级参数
- CFileDialog的使用
- 短信ui分析--设置界面
- cocos2d中对CCMenu 实现扩展使触摸正常图片的透明区域不触发事件
- 电视广告时段的收视率评估工具(CPRP Table评估)
- [ABAP] SELECT ... INTO CORRESPONDING FIELDS OF TABLE 的一个盲点
- 如何避免ViewController打开时Orientation错误
- Servlet生命周期与工作原理
- NoSQL对比:Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j
- MySQL存储引擎
- Simple base conversion implementation use java
- 不定个数的c++函数指针
- air 移动开发配置文件的使用详细教程
- 图片切换效果