2015-06-21 94 views
0

我遇到了問題。 目前我有三個表,第一個表是主表,如果第二個表中沒有記錄,請將其寫入。但是如果在第二個表中存在記錄,那麼從第三個表中顯示「dispo」信息。無法加入三張表

我想使用三個SAP表 - lagp,lqua和marc。 我的目標是從lagp寫入所有股票頭寸。

2倍左連接不工作: 「無法與比較」 B〜MATNR」 A表可以與最多一個其他表usign的LEFT OUTER JOIN接合

結構:。

TYPES: 
    BEGIN OF t_work, 
    lgnum TYPE lgnum, 
    lgtyp TYPE lgtyp, 
    lgpla TYPE lgpla, 
    bdatu TYPE lagp_bdatu, 
    matnr TYPE matnr, 
    verme TYPE lqua_verme, 
    meins TYPE meins, 
    dispo TYPE dispo, 
    END OF t_work. 
DATA: 
    lt_work TYPE TABLE OF t_work INITIAL SIZE 0, 
    ls_work LIKE LINE OF lt_work. 

和SQL命令:

SELECT a~lgnum a~lgtyp a~lgpla a~bdatu b~matnr b~verme b~meins c~dispo FROM lagp AS a 
    LEFT JOIN lqua AS b ON a~lgnum = b~lgnum AND a~lgtyp = b~lgtyp AND a~lgpla = b~lgpla 
    INNER JOIN marc AS c ON b~matnr = c~matnr AND b~werks = c~werks 
    INTO TABLE lt_work 
    WHERE a~lgnum IN so_lgnum 
    AND a~lgtyp IN so_lgtyp 
    AND a~skzua EQ space 
    AND a~skzue EQ space. 

但作爲結果只有一個股票倉位 - http://i.stack.imgur.com/1sEEo.png

你能告訴我,SQL代碼看起來如何?

謝謝

回答

0

嘗試:

SELECT a~lgnum, a~lgtyp, a~lgpla, a~bdatu, b~matnr, b~verme, b~meins, c~dispo 
    FROM lagp AS a 
    LEFT JOIN (lqua AS b 
       JOIN marc AS c ON b~matnr = c~matnr AND b~werks = c~werks) 
      ON a~lgnum = b~lgnum AND a~lgtyp = b~lgtyp AND a~lgpla = b~lgpla 
    INTO TABLE @lt_work 
    WHERE a~lgnum IN @so_lgnum 
    AND a~lgtyp IN @so_lgtyp 
    AND a~skzua EQ @space 
    AND a~skzue EQ @space. 

其他選項將是把在一個視圖LQUA和MARC之間的連接,做這樣的觀點外連接。或者將MARC上的選擇分開,並在LAGP和LQUA選擇的數據上進行循環。

0

我得到了優良的工作代碼:

SELECT ma~matnr ma~mtart ma~ernam ma~ersda ma~laeda 
    de~maktx as maktx_de fr~maktx as maktx_fr it~maktx as maktx_it 
    FROM mara as ma 
    LEFT JOIN MAKT as de ON de~matnr = ma~matnr AND de~spras = 'DE' 
    LEFT JOIN MAKT as fr ON fr~matnr = ma~matnr AND fr~spras = 'FR' 
    LEFT JOIN MAKT as it ON it~matnr = ma~matnr AND it~spras = 'IT' 
    INTO CORRESPONDING FIELDS OF TABLE g_it_material 
    WHERE ma~ernam IN so_ERNAM 
    AND ma~laeda IN so_LAEDA 
    AND ma~matnr IN so_MATNR. 

,它工作正常。你怎麼評論多重左聯?