‎2007 Jul 16 12:10 PM
Hi Everybody,
i had a small problem that
in selection screen iam gaetting company code,date as input for bsid-budat
i need to fetch data from bsid using company code and budat
But with condition:
If posting date (from parameter) is not blank.
Get all items with BSID-BUDAT less than or equal to Posting Date.
Else.
Do not filter by posting date.
Endif.
now how to write the select statement
select BUKRS KUNNR ZUONR GJAHR BELNR
FROM BSID
INTO TABLE ITAB
WHERE BUKRS IN S_BUKRS AND
BUDAT ..................... .
WHAT SHOULD BE THE ........
‎2007 Jul 16 12:13 PM
Hi,
Dont give the less than or equal condition in select query . fetch all records then filter data in itab. then performance will be good.
regards,
Nandha
Reward if it helps
‎2007 Jul 16 12:13 PM
IF NOT P_BUDAT IS INITIAL.
select BUKRS KUNNR ZUONR GJAHR BELNR
FROM BSID
INTO TABLE ITAB
WHERE BUKRS IN S_BUKRS AND
BUDAT LE P_BUDAT.
ELSE.
select BUKRS KUNNR ZUONR GJAHR BELNR
FROM BSID
INTO TABLE ITAB
WHERE BUKRS IN S_BUKRS.
ENDIF.
‎2007 Jul 16 12:13 PM
Ur parameter screen is having Posting date as p_pdate.
select BUKRS KUNNR ZUONR GJAHR BELNR
FROM BSID
INTO TABLE ITAB
WHERE BUKRS IN S_BUKRS AND
BUDAT <=( or give LE) p_pdat.
‎2007 Jul 16 12:13 PM
Hi,
Dont give the less than or equal condition in select query . fetch all records then filter data in itab. then performance will be good.
regards,
Nandha
Reward if it helps
‎2007 Jul 16 12:14 PM
Hi,
the select shud be conditional :
if Posting date is not initial.
select BUKRS KUNNR ZUONR GJAHR BELNR
FROM BSID
INTO TABLE ITAB
WHERE BUKRS IN S_BUKRS AND
BUDAT LT Posting date .
else.
select BUKRS KUNNR ZUONR GJAHR BELNR
FROM BSID
INTO TABLE ITAB
WHERE BUKRS IN S_BUKRS.
endif.
Regards,
Himanshu
‎2007 Jul 16 12:16 PM
hi Sunil
set Parameter as Mandatory (OBLIGATORY) then you no need to check its not blank ...
you must enter data otherwise your cant proceed
select *
into corresponding fields of <itab>
from BUDAT
where budat eq <date - parameter>
Rewards if useful.
‎2007 Jul 16 12:21 PM
Hi sunil,
try this:
TABLES: BSID.
*
SELECT-OPTIONS: S_BUKRS FOR BSID-BUKRS.
PARAMETERS: P_BUDAT LIKE BSID-BUDAT.
*
IF NOT P_BUDAT IS INITIAL.
*
SELECT * FROM BSID WHERE BUKRS IN S_BUKRS
AND BUDAT LE P_BUDAT.
*
WRITE: / BSID-BUKRS, BSID-BUDAT.
*
ENDSELECT.
*
ENDIF.
Regards, Dieter
‎2007 Jul 16 12:21 PM
IF P_DATE is not initial.
SELECT BUKRS KUNNR ZUONR GJAHR BELNR
FROM BSID
INTO TABLE ITAB
WHERE BUKRS IN S_BUKRS
AND BUDAT LT P_DATE.
ELSE.
SELECT BUKRS KUNNR ZUONR GJAHR BELNR
FROM BSID
INTO TABLE ITAB
WHERE BUKRS IN S_BUKRS.
endif.
‎2007 Jul 16 12:21 PM
IF P_DATE is not initial.
SELECT BUKRS KUNNR ZUONR GJAHR BELNR
FROM BSID
INTO TABLE ITAB
WHERE BUKRS IN S_BUKRS
AND BUDAT LT P_DATE.
ELSE.
SELECT BUKRS KUNNR ZUONR GJAHR BELNR
FROM BSID
INTO TABLE ITAB
WHERE BUKRS IN S_BUKRS.
endif.
‎2007 Jul 17 5:41 AM
keeping performance issue in mind.iam accessing the BSID without the BUDAT,later i will filter the data.
Thanks for all the guys replied for my query