ABAP数据库操作系列(6)

database_lock


5.having 详解:
HAVING cond:在group中选择出符合cond条件的记录。

DATA:  count  TYPE I,
avg    TYPE F,
connid TYPE sbook-connid.

SELECT CONNID COUNT( * ) avg( LUGGWEIGHT )
INTO (connid, count, avg)
FROM sbook
WHERE
carrid   = ‘LH’       AND
fldate   = ’20010228′
GROUP BY connid
HAVING AVG( luggweight ) > ’20.0′.
WRITE: / connid, count, avg.
ENDSELECT.

HAVING (source_text):动态指定条件
PARAMETERS: comp(80)    TYPE C,
tabname(80) TYPE C.
DATA:   dref      TYPE REF TO DATA,
long_name TYPE STRING,
count     TYPE I,
fieldlist TYPE STRING,
condition TYPE STRING.
FIELD-SYMBOLS: <fs>.

CONCATENATE tabname ‘-’ comp INTO long_name.
CREATE DATA dref TYPE (long_name).
ASSIGN dref->* TO <fs>.

CONCATENATE comp ‘ count(*)’ INTO fieldlist.
condition = ‘count(*) > 3′.

SELECT DISTINCT (fieldlist)
INTO (<fs>, count)
FROM (tabname)
GROUP BY (comp)
HAVING (condition).
WRITE: / <fs>, count.
ENDSELECT.

6. oder by 详解:
ORDER BY PRIMARY KEY:按照primary key升序排列记录。
DATA: wa_sbook TYPE sbook.
SELECT * FROM sbook INTO wa_sbook
WHERE
carrid   = ‘LH ‘      AND
connid   = ’0400′     AND
fldate   = ’20010228′
ORDER BY PRIMARY KEY.
WRITE: / wa_sbook-bookid,     wa_sbook-customid,
wa_sbook-custtype,   wa_sbook-smoker,
wa_sbook-luggweight, wa_sbook-wunit,
wa_sbook-invoice.
ENDSELECT.

ORDER BY f1 … fn:按照f1 … fn升序排列选择出来的数据。
DATA: wa_sflight TYPE sflight.
SELECT * FROM sflight INTO wa_sflight
WHERE carrid = ‘LH’ AND
fldate BETWEEN ’20010227′ AND ’20010305′
ORDER BY planetype ASCENDING seatsocc DESCENDING.
WRITE: / wa_sflight-planetype, wa_sflight-seatsocc,
wa_sflight-connid, wa_sflight-fldate.
ENDSELECT.

ORDER BY (source_text):动态指定需要排序的字段。
PARAMETERS: comp(80).
DATA:   dref TYPE REF TO DATA,
long_name TYPE STRING,
name TYPE STRING,
ftab TYPE TABLE OF STRING,
count TYPE I.
FIELD-SYMBOLS: <fs>.

name = ‘SPFLI’.
CONCATENATE name ‘-’ comp INTO long_name.
CREATE DATA dref TYPE (long_name).
ASSIGN dref->* TO <fs>.

APPEND comp TO ftab.
APPEND ‘COUNT( * ) AS COUNT’ TO ftab.

SELECT DISTINCT (ftab)
INTO (<fs>, count)
FROM (name)
WHERE
carrid   = ‘LH’
GROUP BY (comp)
ORDER BY (comp).
WRITE: / <fs>, count.
ENDSELECT.


About The Author

从事SAP行业有些年头,对SAP技术稍有了解; 如无特别声明,本博客文章为原创,转载请注明; 博主MSN:xuchunbo0901@hotmail.com; 博主邮箱:bob.xu@abaptech.com。

1 Comment

  1. тёткa 说道:

    {Читаю {ваш|этот|} блог, и понимаю, что {ничего|нифига} не понимаю. Все так запутано. :)

Leave A Reply


注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

无觅相关文章插件,快速提升流量