I experienced a strange behaviour, and I already was thinking of looking for a proper shrink. Can anyone explain this one here ?
This select returns, what I want:
SELECT struc~node,struc~tree_level,struc~parent,
strut~ltext,
mar~matnr, mar~mtart, mar~matkl,
mtx~maktx
FROM wrf_matgrp_struc AS struc
LEFT OUTER JOIN wrf_matgrp_strct AS strut
ON strut~hier_id = struc~hier_id
AND strut~node = struc~node
LEFT OUTER JOIN wrf_matgrp_sku AS sku
ON sku~hier_id = struc~hier_id
AND sku~node = struc~node
LEFT OUTER JOIN mara AS mar
ON mar~matnr = sku~matnr
LEFT OUTER JOIN maw1 AS maw
ON maw~matnr = mar~matnr
LEFT OUTER JOIN makt AS mtx
ON mtx~matnr = mar~matnr
AND mtx~spras = strut~spras
INTO TABLE @lt_result_tab
WHERE struc~hier_id = @gs_act_hier-hier_id
AND struc~node IN @grt_node
AND struc~date_from <= @sy-datum
AND struc~date_to >= @sy-datum
AND strut~spras = @sy-langu
AND mar~matnr IN @grt_matnr
AND mar~matkl IN @grt_matkl
AND maw~wekgr IN @grt_wekgr
I remove the join AND mtx~spras = strut~spras and place it into a where condition like this, and it does not work as expected ( resultset is incomplete ).
SELECT struc~node,struc~tree_level,struc~parent,
strut~ltext,
mar~matnr, mar~mtart, mar~matkl,
mtx~maktx
FROM wrf_matgrp_struc AS struc
LEFT OUTER JOIN wrf_matgrp_strct AS strut
ON strut~hier_id = struc~hier_id
AND strut~node = struc~node
LEFT OUTER JOIN wrf_matgrp_sku AS sku
ON sku~hier_id = struc~hier_id
AND sku~node = struc~node
LEFT OUTER JOIN mara AS mar
ON mar~matnr = sku~matnr
LEFT OUTER JOIN maw1 AS maw
ON maw~matnr = mar~matnr
LEFT OUTER JOIN makt AS mtx
ON mtx~matnr = mar~matnr
INTO TABLE @lt_result_tab
WHERE struc~hier_id = @gs_act_hier-hier_id
AND struc~node IN @grt_node
AND struc~date_from <= @sy-datum
AND struc~date_to >= @sy-datum
AND strut~spras = @sy-langu
AND mar~matnr IN @grt_matnr
AND mar~matkl IN @grt_matkl
AND maw~wekgr IN @grt_wekgr
AND mtx~spras = @sy-langu.