SAP ABAP——OPEN SQL(五)【GROUPING & SORT】

简介: 本文主要介绍SAP ABAP中OPEN SQL的GROUPING和SORT语句

本文主要介绍SAP ABAP中OPEN SQL的GROUPING和SORT语句


AGGREGATE函数分类

函数 功能
AVG 取平均值
COUNT 取个数
MAX 取最大值
MIN 取最小值
STDDEV 取标准偏差
SUM 取合计

注意!所有AGG函数的括号内字段前后必须有一个空格如SUM( CARRID ),否则系统检测不出来!


GROUP BY

使用Aggregate函数之前,选择数据时需要用GROUP BY语句进行分组。GROUP BY语句是当表的特定字段中存在相同的值时就显示在一行中

SELECT <f1> <f2> <agg>...
     GROUP BY <f1> <f2>

案例代码演示

DATA:GV_CARRID TYPE SFLIGHT-CARRID,
 GV_PRICE TYPE I.
 SELECT CARRID SUM( PRICE ) INTO (GV_CARRID,GV_PRICE) FROM SFLIGHT GROUP BY CARRID.
   WRITE:/ GV_CARRID,GV_PRICE.
 ENDSELECT.

效果示例图

e76e0774715113ee749f381388840f1.png

00b57838a82e4c518efeeb2b17cd84c.png


HAVING

HAVING语句主要是用来对进行分组后进行限制条件的语句,要放在GROUP BY语句之后,下面案例演示中限制了上面SUM( PRICE )的值需要大于1000

SELECT <f1> <f2> <agg>...
     ...
     GROUP BY <f1> <f2>
     HAVING <condition>

案例代码演示

DATA:GV_CARRID TYPE SFLIGHT-CARRID,
 GV_PRICE TYPE I.
SELECT CARRID SUM( PRICE ) INTO (GV_CARRID,GV_PRICE) FROM SFLIGHT GROUP BY CARRID HAVING SUM( PRICE ) 
 > 1000.
WRITE:/ GV_CARRID,GV_PRICE.
ENDSELECT.

效果示例图

8f7b27ce419f008534410b02860ddec.png


SORT

在查询数据时可以使用ORDER BY语句,则查询出来的结果会按照ORDER BY指定的字段进行排序。若不使用ORDER BY就会任意地显示排序结果。其中ORDER BY语句还有如下特点需要牢记

- 根据表地KEY值进行排序

- 只适用于SELECT*语句

- 在JOIN语句和视图中无法使用

- 若不指定排序为升序还是降序则默认为升序

SELECT <lines>*
...
ORDER BY <f1>[ASCENDING|DESCENDING] <f2>[ASCENDING|DESCENDING]....

案例代码演示(CARRID升序)

DATA:GV_CARRID TYPE SFLIGHT-CARRID,
 GV_PRICE TYPE I.
 SELECT CARRID SUM( PRICE ) INTO (GV_CARRID,GV_PRICE) FROM SFLIGHT GROUP BY CARRID HAVING SUM( PRICE ) > 1000 ORDER BY  CARRID  ASCENDING.
 WRITE:/ GV_CARRID,GV_PRICE.
 ENDSELECT.

效果示例图

72a803c027d77cfb11ec4e2cefcf6c5.png


案例代码演示(CARRID降序)

DATA:GV_CARRID TYPE SFLIGHT-CARRID,
 GV_PRICE TYPE I.
 SELECT CARRID SUM( PRICE ) INTO (GV_CARRID,GV_PRICE) FROM SFLIGHT GROUP BY CARRID HAVING SUM( PRICE ) > 1000 ORDER BY  CARRID  DESCENDING.
 WRITE:/ GV_CARRID,GV_PRICE.
 ENDSELECT.

效果示例图

a342af22305bc3ba11800f5769c29ac.png

目录
相关文章
SAP ABAP 程序调用设置成后台作业模式
ABAP 程序调用设置成后台作业模式
523 0
SAP ABAP 内表排序 动态字段排序
对于动态内表排序引用ABAP_SORTORDER_TAB
298 0
|
SQL 设计模式 前端开发
【置顶】SAP ABAP开发实战——从入门到精通系列目录
本文章为SAP ABAP开发实战——从入门到精通系列的目录以及关于该教程的后续写作计划表
1593 0
【置顶】SAP ABAP开发实战——从入门到精通系列目录
|
SQL
SAP ABAP-OPENSQL-数值函数简介
S4中针对OPENSQL新提供一些函数
139 0
|
SQL
SAP ABAP-OPENSQL-字符串函数介绍
S4中SQL新语法字符串函数
209 0
|
SQL
SAP ABAP-OPENSQL-日期/时间戳函数
S4提供针对OPENSQL一些新的SQL函数调用,本文展示相关函数的使用
661 0
SAP ABAP-删除工序示例代码
ABAP-删除工序示例代码
171 0
SAP ABAP 检查事务码权限
检查用户是否有自开发事务码的权限
158 0
|
BI
SAP ABAP在线预览文档对象的开发实现
应用场景:有些定制化开发(报表/功能增强等)完成之后,客户需要将其操作手册或者相关文档放在某个报表的初始画面,供实际操作者在线查阅,当然这个功能也同样类似于模板的下载,这里就以在线预览(直接打开)为例进行说明。
225 0
SAP ABAP字符串拼接保留空格
字符串操作保留空格
1090 0