cancel
Showing results for 
Search instead for 
Did you mean: 

Delete internal table where.....

Former Member
0 Kudos
163

Hi,

The DGPROCENT_IM is a INT1.

The I_PRICECOND-DG is a KBETR_KOND.

data l_test type KBETR_KOND.

l_test = DGPROCENT_IM.

if DGPROCENT_IM is not initial.

delete I_PRICECOND where DG > l_test.

endif.

The problem I'm having is that it doesn't delete the right lines....

Strange?

Any pointers?

//Martin

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi,

<b>DELETE itab WHERE logexp.</b>

When you use the WHERE condition with a STANDARD or HASHED table, a full table scan is always required.

If you are working with a SORTED TABLE, the partial sequential processing can be optimized so that only the entries that actually satisfy the WHERE condition are processed. This optimization requires that the WHERE condition be specified in the form

<b>WHERE k1 = v1 AND k2 = v2 AND ... AND kn = vn</b>

<b>where the components k1, ..., kn are in the same sequence as the beginning of the table key.</b>

<b>So Plz check whether the sequence is the same.</b>

Thanks & Regards,

Judith.

Former Member
0 Kudos

Hi,

Did you check the fixed-point arithmetic attribute for your program ?

Also please give an example so that it will be easy to analyze.

Regards,

Anand Mandalika.

christian_wohlfahrt
Active Contributor
0 Kudos

Hi Martin,

Did you check value of l_text? Maybe there is a decimal problem -> KBETR has fixed 2, so probably your border is factor 100 to small:

l_test = DGPROCENT_IM * 100

Regards,

Christian