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

data selection

Former Member
0 Likes
543

Hi Friends, I have 1 problem here

I m prescribing my coding and logic as following:

DATA: KYEAR(4) TYPE C,

NYEAR(4) TYPE C,

KYEAR = SY-DATUM+0(4),

NYEAR = SYEAR - 1 .

IF SYEAR EQ KYEAR AND SMONTH < 4.

SELECT APERNR ASMONTH ASYEAR AAPF AVPF AEPF

BTMONTH BTYEAR BEMPLOYEEPF BEMPLOYERPF

FROM ( ZUPWARDHAWOR AS A INNER JOIN ZTRANS_ENTRY AS B

ON APERNR = BPERNR )

INTO CORRESPONDING FIELDS OF BODY1

WHERE A~SYEAR BETWEEN NYEAR AND SYEAR

AND A~SMONTH BETWEEN '04' AND SMONTH

AND A~PERNR = SMF1-PERNR AND

B~PERNR = SMF1-PERNR "AND

BTMONTH = ASMONTH AND

BTYEAR = ASYEAR

ORDER BY ASYEAR ASMONTH ASCENDING .

APPEND BODY1.

COUNT = COUNT + 1.

ENDSELECT.

Month name is SMONTH year is SYEAR.

I need when i put JAN 2009 OR Feb 2009 the data should be select from APRIL 2008 to Jan 2009 or Feb 2009.

But according to my logic the data is selecting when i hide month from WHERE condition.

It is selected data from jan2008 to jan 2009. But i want Aprill 2008 to till current month and year.

Plz try to solve it soon.

Regards,

Swapnika

1 ACCEPTED SOLUTION
Read only

dev_parbutteea
Active Contributor
0 Likes
498

Hi ,

please stop posting duplicate threads:

Reported

IF SYEAR EQ KYEAR AND SMONTH < 4.

SELECT APERNR ASMONTH ASYEAR AAPF AVPF AEPF

BTMONTH BTYEAR BEMPLOYEEPF BEMPLOYERPF

FROM ( ZUPWARDHAWOR AS A INNER JOIN ZTRANS_ENTRY AS B

ON APERNR = BPERNR )

INTO CORRESPONDING FIELDS OF BODY1

WHERE

( ( ASYEAR = NYEAR AND ASMONTH > '04' ) or

( ASYEAR = SYEAR AND ASMONTH < S_month) )

AND A~PERNR = SMF1-PERNR AND

B~PERNR = SMF1-PERNR "AND

BTMONTH = ASMONTH AND

BTYEAR = ASYEAR

ORDER BY ASYEAR ASMONTH ASCENDING .

Edited by: Dev Parbutteea on Mar 6, 2009 7:00 AM

3 REPLIES 3
Read only

Former Member
0 Likes
498

Hi,

Build the range table and use in Selcet quesy


R_YEAR-sign  = 'I'.
R_YEAR-option = 'BT'.
R_YEAR-LOW = NYEAR.
R_YEAR-HIGH= SYEAR.
Append r_YEAR.


R_MONTH-sign  = 'I'.
R_MONTH-option = 'BT'.
R_MONTH-LOW = '04'.
R_MONTH-HIGH= SMONTH.
Append r_MONTH.

SELECT A~PERNR A~SMONTH A~SYEAR A~APF A~VPF A~EPF
B~TMONTH B~TYEAR B~EMPLOYEEPF B~EMPLOYERPF
FROM ( ZUPWARDHAWOR AS A INNER JOIN ZTRANS_ENTRY AS B
ON A~PERNR = B~PERNR )
INTO CORRESPONDING FIELDS OF BODY1
WHERE A~SYEAR In R_YEAR " BETWEEN NYEAR AND SYEAR
AND A~SMONTH IN R_MONTH " BETWEEN '04' AND SMONTH
AND A~PERNR = SMF1-PERNR AND
B~PERNR = SMF1-PERNR "AND

B~TMONTH = A~SMONTH AND 
B~TYEAR = A~SYEAR 
ORDER BY A~SYEAR A~SMONTH ASCENDING .

Read only

dev_parbutteea
Active Contributor
0 Likes
499

Hi ,

please stop posting duplicate threads:

Reported

IF SYEAR EQ KYEAR AND SMONTH < 4.

SELECT APERNR ASMONTH ASYEAR AAPF AVPF AEPF

BTMONTH BTYEAR BEMPLOYEEPF BEMPLOYERPF

FROM ( ZUPWARDHAWOR AS A INNER JOIN ZTRANS_ENTRY AS B

ON APERNR = BPERNR )

INTO CORRESPONDING FIELDS OF BODY1

WHERE

( ( ASYEAR = NYEAR AND ASMONTH > '04' ) or

( ASYEAR = SYEAR AND ASMONTH < S_month) )

AND A~PERNR = SMF1-PERNR AND

B~PERNR = SMF1-PERNR "AND

BTMONTH = ASMONTH AND

BTYEAR = ASYEAR

ORDER BY ASYEAR ASMONTH ASCENDING .

Edited by: Dev Parbutteea on Mar 6, 2009 7:00 AM

Read only

matt
Active Contributor
0 Likes
498

Do not keep posting the same question. I've deleted the ones you posted earlier. It is unfair on those who answer your query if you keep opening the same question.