Левое внешнее соединение не удалось - PullRequest
0 голосов
/ 08 ноября 2018

Привет. Этот запрос не работает, если я добавил условие при VBFA.VBTYP_N = 'Q', и он дает null данные и тот же результат, если он добавлен в условие where. Оба случая имеют одинаковый результат

Мне нужно получить данные из левой таблицы, даже если условие не выполнено

ORDER_DATA = SELECT

          VBRP.MATNR AS ITEM,
          VBRP.ARKTX AS ITEMDESCRIPTION,
          VBAK.ERDAT AS ORDERDATE,
          VBAK.VBELN AS ORDERNUMBER,
          VBRK.FKDAT AS INVOICEDATE,
          VBRK.VBELN AS INVOICENUMBER ,
          VBRP.FKIMG AS QUANTITY,
          VBRP.VRKME AS UOM,
          VBFA.RFMNG AS PICKUNIT
          FROM  VBAP

          INNER JOIN VBAK
          ON   VBAP.MANDT = VBAK.MANDT
          AND  VBAP.VBELN = VBAK.VBELN

          LEFT  OUTER JOIN VBRP
          ON  VBAP.MANDT = VBRP.MANDT
          AND VBAP.VBELN = VBRP.AUBEL
          AND VBAP.POSNR = VBRP.AUPOS

         LEFT OUTER JOIN VBFA

          ON  VBRP.VGBEL = VBFA.VBELV
          AND  VBRP.VGPOS = VBFA.POSNV
          AND VBFA.VBTYP_N = 'Q'

          INNER JOIN VBRK
          ON  VBRP.MANDT = VBRK.MANDT
          AND VBRP.VBELN = VBRK.VBELN






          WHERE VBAP.MANDT = :CLNT AND
                VBAK.MANDT = :CLNT AND

1 Ответ

0 голосов
/ 08 ноября 2018

Если в вашем столбце VBFA.VBTYP_N есть значения NULL, и это является причиной сбоя условия соединения, тогда вы можете попробовать использовать что-то вроде этого: AND (VBFA.VBTYP_N = NULL ИЛИ VBFA.VBTYP_N = 'Q')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...