Условное поле по выбранному столбцу в запросе JOIN - PullRequest
0 голосов
/ 11 февраля 2020

В данный момент мой запрос выглядит следующим образом

 SELECT CSKS~KOSTL CSKS~DATBI CSKS~NAME1 CSKS~KOSAR CSKS~VERAK CEPC~PRCTR CEPC~NAME3 CEPC~NAME4 UP TO X ROWS
 FROM CSKS INNER JOIN CEPC ON ( CSKS~PRCTR = CEPC~PRCTR AND CSKS~KOKRS = CEPC~KOKRS )
   INTO gwa_itab
 WHERE CSKS~BUKRS = cocode AND
    CSKS~KOKRS = cntrarea AND
   CSKS~DATBI  > d1.
   APPEND gwa_itab TO it_itab.
 ENDSELECT.

Как я могу изменить его, чтобы он видел, с какого номера начинаются МВЗ и, если они начинаются с 1, например, вставьте в столбец Расположение которая уже находится во внутренней таблице заданной строки EG: Washington.

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

В последних выпусках 7.50+ вы можете выбрать один выбор без циклического выбора SELECT:

SELECT ks~kostl, ks~datbi, ks~name1, ks~kosar, ks~verak, pc~prctr, pc~name3, pc~name4,
        CASE SUBSTRING( ks~kostl, 1, 1 )
          WHEN '1' THEN 'Washington'
        END AS location
  FROM csks AS ks
 INNER JOIN cepc AS pc
    ON ks~prctr = pc~prctr AND ks~kokrs = pc~kokrs

 WHERE ks~bukrs = cocode AND
       ks~kokrs = cntrarea AND
       ks~datbi  > d1

  INTO TABLE @DATA(it_itab)
    UP TO 100 ROWS.
1 голос
/ 11 февраля 2020
 SELECT CSKS~KOSTL CSKS~DATBI CSKS~NAME1 CSKS~KOSAR CSKS~VERAK CEPC~PRCTR CEPC~NAME3 CEPC~NAME4 UP TO X ROWS
     FROM CSKS INNER JOIN CEPC ON ( CSKS~PRCTR = CEPC~PRCTR AND CSKS~KOKRS = CEPC~KOKRS )
       INTO gwa_itab
     WHERE CSKS~BUKRS = cocode AND
        CSKS~KOKRS = cntrarea AND
       CSKS~DATBI  > d1.

    SHIFT gwa_itab-kostl LEFT DELETING LEADING '0'.
      IF gwa_itab-kostl(1) = 1.
        gwa_itab-location = 'Washington'.
      ENDIF.

       APPEND gwa_itab TO it_itab.
       CLEAR: gwa_itab.
     ENDSELECT.
...