内表练习题

2019-04-28  本文已影响0人  扇动蝴蝶的翅膀

定义工作区和TYPES

*根据SFLIGH(航班)表,查询航线编号CARRID为‘LH’都有哪些航班,
在屏幕上输出航班编号CONNID、航班日期FLDATE、票价PRICE、飞机类型PLANETYPE、币种CURRENCY

TYPES:BEGIN OF ty_sflight,
      CONNID TYPE sflight-CONNID,
      FLDATE TYPE sflight-FLDATE,
      PRICE TYPE sflight-PRICE,
      PLANETYPE TYPE sflight-PLANETYPE,
      CURRENCY TYPE sflight-CURRENCY,
      END OF ty_sflight.
DATA: sflight_itab TYPE TABLE OF ty_sflight,
      sflight_wspace TYPE ty_sflight.
SELECT
  sflight~CONNID
  sflight~FLDATE
  sflight~PRICE
  sflight~PLANETYPE
  sflight~CURRENCY
FROM
  sflight
INTO TABLE
  sflight_itab
WHERE
  CARRID = 'LH'.
LOOP AT sflight_itab INTO sflight_wspace.
  WRITE:/ sflight_wspace-CONNID,sflight_wspace-FLDATE,
        sflight_wspace-PRICE,sflight_wspace-PLANETYPE,
        sflight_wspace-CURRENCY.
ENDLOOP.

MESSAGE S000

不需要定义工作区和TYPES

REPORT ZABAP1903_07NEIBIAO LINE-COUNT 5.  "LINE-COUNT 5:每5行为一个块
DATA: sflight_itab TYPE TABLE OF  SFLIGHT  WITH HEADER LINE.    " WITH HEADER LINE:带有表头行的内表,TYPE TABLE OF:后面这接跟表名,从数据库表只取自己需要的字段
SELECT
  sflight~CONNID
  sflight~FLDATE
  sflight~PRICE
  sflight~PLANETYPE
  sflight~CURRENCY
FROM
  sflight
INTO CORRESPONDING FIELDS OF TABLE
  sflight_itab
WHERE
  CARRID = 'LH'.
LOOP AT sflight_itab.
  WRITE:/ sflight_itab-CONNID,sflight_itab-FLDATE,
        sflight_itab-PRICE,sflight_itab-PLANETYPE,
        sflight_itab-CURRENCY.
ENDLOOP.

多表查询

TABLES: SFLIGHT,SPFLI.
TYPES: BEGIN OF ty_sflight_spfli,
        CARRID TYPE SFLIGHT-CARRID,
        FLDATE TYPE SFLIGHT-FLDATE,
        PRICE TYPE SFLIGHT-PRICE,
        PLANETYPE TYPE SFLIGHT-PLANETYPE,
        CITYFROM TYPE SPFLI-CITYFROM,
        CITYTO TYPE SPFLI-CITYTO,
        FLTIME TYPE SPFLI-FLTIME,
       END OF ty_sflight_spfli.

DATA: gt_itab TYPE TABLE OF ty_sflight_spfli,
      wa_wspace TYPE ty_sflight_spfli.

SELECT
  SFLIGHT~CARRID
  SFLIGHT~FLDATE
  SFLIGHT~PRICE
  SFLIGHT~PLANETYPE
  SPFLI~CITYFROM
  SPFLI~CITYTO
  SPFLI~FLTIME
FROM SFLIGHT INNER JOIN SPFLI ON SFLIGHT~CONNID = SPFLI~CONNID
INTO CORRESPONDING FIELDS OF TABLE gt_itab
WHERE SFLIGHT~PLANETYPE = 'DC-10-10' AND SFLIGHT~FLDATE BETWEEN '20190101' AND '20190701'.

LOOP AT gt_itab INTO wa_wspace.
  WRITE: wa_wspace-CARRID,
        / wa_wspace-FLDATE,
        / wa_wspace-PRICE,
        / wa_wspace-PLANETYPE,
        / wa_wspace-CITYFROM,
        / wa_wspace-CITYTO,
        / wa_wspace-FLTIME.
ENDLOOP.
上一篇下一篇

猜你喜欢

热点阅读