注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

XINBO'S SAP BLOG

你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经

 
 
 

日志

 
 

ABAP数据库操作系列(5)  

2009-05-18 11:39:00|  分类: DATABASE |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

继续我们的数据库操作语句讲解:Where

4.where 详解:
   Where cond : 限定抽出数据的条件,如果没有where语句,则系统会抽出所有当前集团下的所有数据。
   FOR ALL ENTRIES IN itab WHERE cond :把选择的条件限定在itab这个内表之中。当处理大量数据的时候,这条语句的性能相对来说比较好。
   注意:只能够在select语句中使用。
          Itab不需要表头行。
          内表中作为条件的字段必须和数据库中的字段的类型相符。
          条件中不能使用like,between,in语句。
          不能使用oder by 语句。
SELECT * FROM sflight INTO wa_sflight
    FOR ALL ENTRIES IN ftab
    WHERE CARRID = ftab-carrid AND
          CONNID = ftab-connid AND
          fldate = '20010228'.
  WRITE: / wa_sflight-carrid, wa_sflight-connid.
ENDSELECT.

    WHERE (source_text):动态指定条件的时候使用。例如根据屏幕的选择来改变查询条件的情况下就可以使用。(source_text)可以是字符串,也可以是内表。
DATA: where_clause TYPE STRING,
      connid       TYPE sflight-connid.
CONCATENATE     'carrid = ''' airline ''''
            ' AND fldate = ''' date '''' INTO where_clause.
SELECT connid FROM sflight INTO connid
  WHERE (where_clause).
  WRITE: / date, airline, connid.
ENDSELECT.

5. group by 详解:
    GROUP BY f1 ... fn:把f1 … fn 中指定的字段相同的数据归到一组。
DATA:  count TYPE I, sum TYPE P DECIMALS 2, avg TYPE F.
DATA:  connid TYPE sbook-connid.
SELECT connid COUNT( * ) SUM( luggweight ) AVG( luggweight )
       INTO (connid, count, sum, avg)
       FROM sbook
       WHERE
         carrid   = 'LH'       AND
         fldate   = '20010228'
       GROUP BY connid.
  WRITE: / connid, count, sum, avg.
ENDSELECT.

    GROUP BY (source_text):动态指定以那个字段归组。(source_text)可以是字符串也可以是内表。
DATA:   BEGIN OF wa.
          INCLUDE STRUCTURE spfli.
DATA:     count TYPE I.
DATA:   END OF wa.
DATA:   field_list    TYPE STRING,
        group_by_list TYPE STRING,
        count TYPE I.

field_list    = 'CITYFROM COUNT( * ) AS COUNT'.
group_by_list = 'CITYFROM'.

SELECT DISTINCT (field_list)
       INTO CORRESPONDING FIELDS OF wa
       FROM spfli
       WHERE
         carrid   = 'LH'
       GROUP BY (group_by_list).
  WRITE: / wa-cityfrom, wa-count.
ENDSELECT.

  评论这张
 
阅读(425)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017