我的問題:SAP ABAP - 與對照表處理
我「循環」在一個表到一個名爲ls_eban局部結構..
,並與這些信息,我必須遵循以下步驟:
- ls_eban-MATNR 必須是在zmd_scmi_st01(1控制表(全局))
- ls_eban-WERKS 必須在zmd_scmi_st05( 2.控制表(全局))
- ls_eban-knttp 必須是在zmd_scmi_st06(3控制表(全局))
我需要一個選擇是清楚和高性能的。我其實有一個,但它根本就不是高性能的。
我的解決辦法:
SELECT st01~matnr st05~werks st06~knttp
FROM zmd_scmi_st01 AS st01
INNER JOIN zmd_scmi_st05 AS st05
ON st05~werks = ls_eban-werks
INNER JOIN zmd_scmi_st06 AS st06
ON knttp = ls_eban-knttp
INTO TABLE lt_control
WHERE st01~matnr = ls_eban-matnr AND st01~bedarf = 'X'
AND st05~bedarf = 'X'.
我也不得不說,該控制表不具有任何彼此關係(沒有主鍵和無二次鍵)。
您能向我們展示一個完整的代碼示例以及所涉及的所有表的結構嗎?我只能猜測你的問題可能是什麼,並且你不想要一個純粹猜測的「答案」...... – vwegert 2013-03-01 14:01:14
如果3個控制表彼此沒有關係,你不應該加入他們。爲每個規則分開選擇。同樣由於控制表的性質,它們通常是相對較小的表,因此您可以將每個表中的所有條目選擇到單獨的內部表中,然後在循環內部進行讀取。 – Esti 2013-03-02 02:08:49