I use below code to loop an itab but the if condition can't exlude anything.
LOOP AT gt_data INTO DATA(gs_data).
IF gs_data-rfarea is not initial.
...
endif.
endloop.
But if I changed the code to
LOOP AT gt_data INTO DATA(gs_data).
IF gs_data-rfarea <> ''.
...
endif.
endloop.
And it worked. So what's the reason? Is this because the SQL which select data into itab?
Below is the SQL.
SELECT
faglflext~rbukrs,
faglflext~rfarea,
faglflext~rcntr,
cskt~ltext,
faglflext~racct,
skat~txt50,
faglflext~hsl01,faglflext~hsl02,faglflext~hsl03,faglflext~hsl04,faglflext~hsl05,faglflext~hsl06,faglflext~hsl07,faglflext~hsl08,faglflext~hsl09,
faglflext~hsl10,faglflext~hsl11,faglflext~hsl12,faglflext~hsl13,faglflext~hsl14,faglflext~hsl15,faglflext~hsl16
INTO TABLE @DATA(gt_data)
FROM faglflext
LEFT JOIN skat ON faglflext~racct = skat~saknr
LEFT JOIN cskt ON faglflext~rcntr = cskt~kostl AND cskt~datbi = '99991231'
WHERE faglflext~rbukrs IN @company1
AND faglflext~ryear = @pyear
AND faglflext~rcntr IN @costc
AND faglflext~racct IN @acct
AND FAGLFLEXT~rfarea in @CostP.