欢迎来到天天文库
浏览记录
ID:47615075
大小:123.98 KB
页数:14页
时间:2019-10-09
《SAPABAP语法实例(二)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、标准文档SAPABAP语法实例调试1调试键lF8跳过后面所有断点,程序执行完 2外部、会话、调试断点调试断点-debug时打的断点,程序远程完后就会消失会话断点-程序运行前通过会话断点按钮打的断点,在同一登录会话不同窗口都有效,用户注销后消失外部断点-程序运行前通过外部断点按钮打的断点,用户注销后再登录还是有效,但只针对同一用户有效实用大全标准文档SelectSELECTFROMINTO[WHERE][GROUPBY][HAVING2、d>][ORDERBY].GROUPBY:用于将一组数据条目压缩为一个单行作为选择最终结果;HAVING:用于限定ORDERBY子句子数据目组的选择条件;ORDERBY:用于限定行排序;SELECT整体语法结构。示例:以上示例查询的是:20170503至20170510期间销售订单为JR01,且销售量大于50的单据的订单号、创建日期、创建者、类型以及合计销量,并按销售订单升序排序。这里需要强调的是,如果要使用函数(如SUM、MAX、MIN),则需要将其他字段通过GROUPBY进行分组。如果需要继续对使用函数进3、行条件筛选,则可以使用关键字HAVING。关键字ORDERBY决定查询结果的排序方法,ASCENDING为升序,DESCENDING为降序。实用大全标准文档1SELECTSINGLE单行数据:SELECTSINGLEINTOFROM...如果系统找到一个完全符合指定条件的行,SY-SUBRC返回0,否则返回4。一般不需要指明所有字段,而是在SELECT后用"*"符号,若指定多个数据对象,则需要将这些对象放在括号中,并用逗号隔开,而且其顺序需要与SELECT子句中指明的表字段顺序4、一致。这里的为结构非内表。示例:TABLES: sflight.DATA: sum TYPE i VALUE 0.SELECT SINGLE SUM( seatsocc ) INTO sum FROM sflight WHERE carrid ='LH'.WRITE:/ sum.以上实现的是航线为LH的合计座位数。区别以下代码,上面代码只输出一行,下面则输出多行:2SELECT/ENDSELECT循环通过SELECT/ENDSELECT循环从数据库中读取多行。SELECT[DISTINCT]5、...ENDSELECT.注:使用DISTINCT自动去掉重复的行;SY-DBCNT(系统字段)为每次循环计数.示例:实用大全标准文档使用distinct达到的效果与selectsingle一样,建议使用selectsingle语句。3一次性SELECT...INTO一次性把数据选择到一个内表中去。SELECT...INTO6、APPENDING[CORRESPONDINGFIELDSOF]TABLEitab.该情况下SELECT并不启动循环,因而不需要使用ENDSELECT语句;如果itab非7、空,则SELECT语句将用读取的数据覆盖其中的内容,使用APPENDING代替INTO将不覆盖内表,若结构不完全相同,也可使用CORRESPONDINGFIELDS选项将同名区域相对应。SQL编写注意事项-性能实例1直接内表操作优先尽量不要在频率较高的循环语句中使用updateinsertdeletemodify等操作,即尽量不要通过工作区实现,直接通过操作内表实现。示例:2select…into…table优于select…appendtable..endselect在对内表赋值时,尽量使用select…into…t8、able的写法来代替select…appendtable..endselect的写法。尽量用对内表的操作来代替对数据库的操作。示例:DATA:BEGINOFit_maraOCCURS0,matnrLIKEmara-matnr,maktxLIKEmakt-maktx,ENDOFit_mara.第一种写法:SelectmatnrINTOit_maraFROMmara.APPENDit_mara.ENDSelect.实用大全标准文档第二种写法(highperformace):SelectmatnrINTOTABLEit_maraF9、ROMmara.3使用forallentries不推荐Loopatint_cntry.Selectsingle*fromzflighintoint_flighwherecntry=int_cntry-cntry.Appendint_fligh.Endloop.推荐Select*fromzf
2、d>][ORDERBY].GROUPBY:用于将一组数据条目压缩为一个单行作为选择最终结果;HAVING:用于限定ORDERBY子句子数据目组的选择条件;ORDERBY:用于限定行排序;SELECT整体语法结构。示例:以上示例查询的是:20170503至20170510期间销售订单为JR01,且销售量大于50的单据的订单号、创建日期、创建者、类型以及合计销量,并按销售订单升序排序。这里需要强调的是,如果要使用函数(如SUM、MAX、MIN),则需要将其他字段通过GROUPBY进行分组。如果需要继续对使用函数进
3、行条件筛选,则可以使用关键字HAVING。关键字ORDERBY决定查询结果的排序方法,ASCENDING为升序,DESCENDING为降序。实用大全标准文档1SELECTSINGLE单行数据:SELECTSINGLEINTOFROM...如果系统找到一个完全符合指定条件的行,SY-SUBRC返回0,否则返回4。一般不需要指明所有字段,而是在SELECT后用"*"符号,若指定多个数据对象,则需要将这些对象放在括号中,并用逗号隔开,而且其顺序需要与SELECT子句中指明的表字段顺序
4、一致。这里的为结构非内表。示例:TABLES: sflight.DATA: sum TYPE i VALUE 0.SELECT SINGLE SUM( seatsocc ) INTO sum FROM sflight WHERE carrid ='LH'.WRITE:/ sum.以上实现的是航线为LH的合计座位数。区别以下代码,上面代码只输出一行,下面则输出多行:2SELECT/ENDSELECT循环通过SELECT/ENDSELECT循环从数据库中读取多行。SELECT[DISTINCT]
5、...ENDSELECT.注:使用DISTINCT自动去掉重复的行;SY-DBCNT(系统字段)为每次循环计数.示例:实用大全标准文档使用distinct达到的效果与selectsingle一样,建议使用selectsingle语句。3一次性SELECT...INTO一次性把数据选择到一个内表中去。SELECT...INTO
6、APPENDING[CORRESPONDINGFIELDSOF]TABLEitab.该情况下SELECT并不启动循环,因而不需要使用ENDSELECT语句;如果itab非
7、空,则SELECT语句将用读取的数据覆盖其中的内容,使用APPENDING代替INTO将不覆盖内表,若结构不完全相同,也可使用CORRESPONDINGFIELDS选项将同名区域相对应。SQL编写注意事项-性能实例1直接内表操作优先尽量不要在频率较高的循环语句中使用updateinsertdeletemodify等操作,即尽量不要通过工作区实现,直接通过操作内表实现。示例:2select…into…table优于select…appendtable..endselect在对内表赋值时,尽量使用select…into…t
8、able的写法来代替select…appendtable..endselect的写法。尽量用对内表的操作来代替对数据库的操作。示例:DATA:BEGINOFit_maraOCCURS0,matnrLIKEmara-matnr,maktxLIKEmakt-maktx,ENDOFit_mara.第一种写法:SelectmatnrINTOit_maraFROMmara.APPENDit_mara.ENDSelect.实用大全标准文档第二种写法(highperformace):SelectmatnrINTOTABLEit_maraF
9、ROMmara.3使用forallentries不推荐Loopatint_cntry.Selectsingle*fromzflighintoint_flighwherecntry=int_cntry-cntry.Appendint_fligh.Endloop.推荐Select*fromzf
此文档下载收益归作者所有