Open SQL能够方便的实现数据库数据的读取及修改,其对数据库主要操作语法包括:SELECT、UPDATE、INSERT、DELETE及MODIFY。
      Open SQL的执行状态通过系统变量SY-SUBRC来表现,如果SY-SUBRC值为0,则表示Open SQ执行成功,如果不为0,则表示执行失败。
      1.SELECT语法结构
      SELECT 语句用于实现对数据的查询,其语法结构如下:
      SELECT <result> FROM <dbtab> 
      INTO <target>
      WHERE <condition>
      GROUP BY <fields> ORDER BY <fields>
      其中各关键字的属性描述如下:
      SELECT <result>:具体的查询字段。
      SELECT SINGLE:定义单行查询。
      FROM <dbtab>:所查询的透明表。
      INTO <target>:查询结果赋值对象,赋值到具体表或结构体。
      INTO (<f1>...<fn>):将查询结果赋值到具体字段。
      INTO CORRESPONDING FILES OF <itab>:将查询结果按字段匹配赋值给具体的表或者结构体。
      WHERE <condition>:查询条件。
      GROUP BY <fileds>:分组查询条件。
      ORDER BY <fields>:排序条件。
      [For Example]
TABLES:SPFLI.
      DATA sitab LIKE TABLE OF SPFLI WITH HEADER LINE.
     
SELECT SINGLE CarrId ConnId Airpfrom Airpto FROM SPFLI INTO CORRESPONDING FIELDS OF sitab.
     
WRITE: / 'sitab-CarrId=',sitab-CarrId,
             / 'sitab-ConnId=',sitab-ConnId,
             / 'sitab-Airpfrom=',sitab-Airpfrom,
              / 'siab-Airpto=',sitab-Airpto.
      输出结果如下截图:
     
          

使用SELECT...ENDSELECT语法能循环读取及操作查询,通过系统参数SY-DBCNT可以获取当前读取数据的行数,该语法中不能加入SINGLE、INTO CORRESPONDING FIELDS、TABLE等关键字,中间可以使用CHECK语法来判断查询值,如下:
[For Example]
      TABLES:SBOOK.
      DATA:COUNTS TYPE I,TOTAL TYPE P DECIMALS 2,AVERAGE TYPE F.
     
DATA:CONNID LIKE SBOOK-CONNID.
     
*SELECT SINGLE LUGGWEIGHT FROM SBOOK INTO TOTAL. 
     
*WRITE TOTAL.
     
SELECT CONNID COUNT(*) SUM( LUGGWEIGHT ) AVG( LUGGWEIGHT )
      INTO (CONNID,COUNTS,TOTAL,AVERAGE)
     
FROM SBOOK
     
*WHERE CARRID = 'LH' AND FLDATE = '19950228' 
     
GROUP BY CONNID.
      WRITE: / 'SY-DBCNT=',SY-DBCNT,
             / 'CONNID=', CONNID,
             / 'COUNTS=',COUNTS,
             / 'TOTAL=',TOTAL,
             / 'AVERAGE=',AVERAGE.
  
      CHECK TOTAL > 10.
       WRITE: / 'THW SUM WEIGHT MORE THAN 10.'.
    
ENDSELECT.
     输出结果如下截图:
        
 
2.SELECT常用标准函数
         Open SQL 常用的标准函数如下:
         COUNT():统计查询总数。
         SUM():统计表中某个数值字段的总和。
         AVG():统计表中某个数值字段的平均值。
         MAX():统计表中某个字段的最大值。
         MIN() :统计表中某个字段的最小值。
 
 
                
            
        