Skip to Content
0
Former Member
Feb 25, 2014 at 12:42 PM

Select Query...... Combinations

289 Views

Hi Experts,

I have a Custom table for finding approver which looks like the below data. If no data is entered in the highlighted fields it means " * " which is applicable for all.

Appl Type

Appl Subtype

Pers Area

Pers SubArea

Emp Grp

Emp Subgrp

End Date

Appr Level

Begin Date

Approver

CLAIM

1111

31.12.9999

3

01.01.2010

XXX

CLAIM

1111

PA

31.12.9999

3

01.01.2010

YYY

I am trying to write Select Query on this table as below.

DATA: t_appl_subty TYPE RANGE OF zzp_appl_sub,


w_appl_subty-sign = |I|.
w_appl_subty-option = |EQ|.
w_appl_subty-low = i_appl_subty.
APPEND w_appl_subty TO t_appl_subty.
CLEAR w_appl_subty.
w_appl_subty-sign = |I|.
w_appl_subty-option = |EQ|.
w_appl_subty-low = ''.
APPEND w_appl_subty TO t_appl_subty.
CLEAR w_appl_subty.


w_persa-sign = |I|.
w_persa-option = |EQ|.
w_persa-low = i_persa.
APPEND w_persa TO t_persa.
CLEAR w_persa.
w_persa-sign = |I|.
w_persa-option = |EQ|.
w_persa-low = ''.
APPEND w_persa TO t_persa.
CLEAR w_persa.


w_btrtl-sign = |I|.
w_btrtl-option = |EQ|.
w_btrtl-low = i_btrtl.
APPEND w_btrtl TO t_btrtl.
CLEAR w_btrtl.
w_btrtl-sign = |I|.
w_btrtl-option = |EQ|.
w_btrtl-low = ''.
APPEND w_btrtl TO t_btrtl.
CLEAR w_btrtl.


w_persg-sign = |I|.
w_persg-option = |EQ|.
w_persg-low = i_persg.
APPEND w_persg TO t_persg.
CLEAR w_persg.
w_persg-sign = |I|.
w_persg-option = |EQ|.
w_persg-low = ''.
APPEND w_persg TO t_persg.
CLEAR w_persg.


w_persk-sign = |I|.
w_persk-option = |EQ|.
w_persk-low = i_persk.
APPEND w_persk TO t_persk.
CLEAR w_persk.
w_persk-sign = |I|.
w_persk-option = |EQ|.
w_persk-low = ''.
APPEND w_persk TO t_persk.
CLEAR w_persk.


SELECT SINGLE * FROM zapprover
INTO wa_approver
WHERE appl_typ = i_appl_typ
AND appl_subty IN t_appl_subty
AND persa IN t_persa
AND btrtl IN t_btrtl
AND persg IN t_persg
AND persk IN t_persk
AND appr_lvl = i_appr_lvl
AND endda GE sy-datum.

I am passing data as

i_appl_typ = 'CLAIM'

i_appl_subty = '1111'

i_persa = 'PA'

i_btrtl = ' '

i_persg = ' '

i_persk = ' '

i_appr_lvl = 3

It is picking the First record, but as per my requirement if no data available with data “PA” then it has to fetch first record. I am not sure,It seems to be leading to combinations.

How can I write Select Query? 😕

Please help me.