Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Problem with Select query fetching records.

Former Member
0 Likes
637

Hi All,

SELECT bukrs belnr gjahr bldat cpudt aedat cputm usnam xblnr bktxt waers
                   FROM bkpf INTO TABLE bkpf_tbl
                   WHERE bukrs IN s_bukrs AND blart IN ('RE' , 'ZL')
AND ( ( cpudt > prv_date )
                   OR    ( cpudt = prv_date AND cputm >= prv_time ) )
                   OR  ( ( aedat > prv_date )
                   OR    ( aedat = prv_date AND cputm >= prv_time ) )
                   AND gjahr IN s_gjahr
                   AND monat IN s_monat
                   AND belnr IN s_belnr

My prv_date is 05/04/2010 while debugging.

CPUDT (Accounting Document Entry Date) in BKPF doesnu2019t have any entries.

But AEDAT (Date of the Last Document Change by Transaction) is having a single entry on date 05/04/2010.

While this query is showing number of records around 200000. I feel something is wrong with the AND/OR statements.

Please suggest some ideas?

Hi Manas,

Check corrected code below

SELECT bukrs belnr gjahr bldat cpudt aedat cputm usnam xblnr bktxt waers
                   FROM bkpf INTO TABLE bkpf_tbl
                   WHERE bukrs IN s_bukrs AND blart IN ('RE' , 'ZL')
		   AND ( ( cpudt > prv_date ) OR ( cpudt = prv_date AND cputm >= prv_time )
                          OR  ( aedat > prv_date ) OR ( aedat = prv_date AND cputm >= prv_time ) )
                   AND gjahr IN s_gjahr
                   AND monat IN s_monat
                   AND belnr IN s_belnr

Regards

Vinod

4 REPLIES 4
Read only

Former Member
0 Likes
600

Hi,

Itu2019s because of bracket problem . use 1 more bracket for OR condition

(( ( cpudt > prv_date )

OR ( cpudt = prv_date AND cputm >= prv_time ) )

OR ( ( aedat > prv_date )

OR ( aedat = prv_date AND cputm >= prv_time ) ))

Salil ...

Edited by: salil chavan on May 5, 2010 1:12 PM

Read only

Former Member
0 Likes
600

Hi Manas,

Check corrected code below

SELECT bukrs belnr gjahr bldat cpudt aedat cputm usnam xblnr bktxt waers
                   FROM bkpf INTO TABLE bkpf_tbl
                   WHERE bukrs IN s_bukrs AND blart IN ('RE' , 'ZL')
		   AND ( ( cpudt > prv_date ) OR ( cpudt = prv_date AND cputm >= prv_time )
                          OR  ( aedat > prv_date ) OR ( aedat = prv_date AND cputm >= prv_time ) )
                   AND gjahr IN s_gjahr
                   AND monat IN s_monat
                   AND belnr IN s_belnr

Regards

Vinod

Read only

Former Member
0 Likes
600

Hi Mishra,

I dont know the excaly wht u r passing in the prv_date and cpudt . But one thing i notice that blart part.

SELECT bukrs belnr gjahr bldat cpudt aedat cputm usnam xblnr bktxt waers

FROM bkpf INTO TABLE bkpf_tbl

WHERE bukrs IN s_bukrs AND blart eq 'RE' or blart eq 'ZL'

AND ( ( cpudt > prv_date )

OR ( cpudt = prv_date AND cputm >= prv_time ) )

OR ( ( aedat > prv_date )

OR ( aedat = prv_date AND cputm >= prv_time ) )

AND gjahr IN s_gjahr

AND monat IN s_monat

AND belnr IN s_belnr.

With Regards,

Sumodh.P

Read only

Former Member
0 Likes
600

Hi,

Did you see this ,


SELECT bukrs belnr gjahr bldat cpudt aedat cputm usnam xblnr bktxt waers
                   FROM bkpf INTO TABLE bkpf_tbl
                   WHERE bukrs IN s_bukrs
                        AND blart IN ('RE' , 'ZL')
                       AND ( ( cpudt > prv_date ) OR    ( cpudt = prv_date AND cputm >= prv_time ) )
                         OR  ( ( aedat > prv_date )  OR    ( aedat = prv_date AND cputm >= prv_time ) ) 
                      " I Think due to this OR statement you may get huge records
                      AND gjahr IN s_gjahr
                      AND monat IN s_monat
                      AND belnr IN s_belnr

Regards,

Raghava Channooru