11-23-2006 10:54 AM
total number of records in given range.
-
Hi all ,
I have the Requirement as follows.
I Have a Table which Contains Duplicate Dates like
22.11.2006
15.11.2006
31.10.2006
15.09.2006
15.09.2006
14.09.2006
15.09.2006
14.09.2006
16.09.2006
etc...
The input is monday of any week of a Year. Suppose 3 rd week starts from 15.11.2006 and ends to 21.11.2006. Weekly 5 days are working days. If i ienter the 15.09.2006 as input.....
The Required out put is : 5 Records ( In above example 15.09.2006 to 21.09.2006 total Number of records is 5. I mean 15.09.2006 is Found 4 times + 16.09.2006 is found 1 time in the Specied Range.
total: 4+1 = 5 records.)
Simply...my requirement is to find total number of Records(with Duplicates) in the Given range .
thanks in Advance
sivaranga& Krish...
11-23-2006 10:57 AM
hi,
1. select all record into an itab.
2. loop the itab into wa.
<b> if wa-fdate_field IN s_date.</b>
append wa to ITAB_NEW.
endif.
3. in ITAB_NEW u will get the records in range
rgds
anver
11-23-2006 11:00 AM
Hullo
SELECT COUNT( * ) FROM <table>
INTO <amount_of_dates>
WHERE from LE <begin_date>
AND to GE <end_date>.
Hope this helps.
11-23-2006 11:00 AM
Hi Siva,
You can perhaps do an algorithm like this :
data : count type i.
count = 0.
LOOP AT i_tab WHERE date >= '20060915' AND date <= '20060921'.
ADD 1 TO count.
ENDLOOP.
Hope it helps,
Mathieu
11-23-2006 11:02 AM
11-23-2006 11:13 AM
this is the code. Where i have to make changes..
this is the program which they given
*********************************************************************
Report Title: /GIL/ZZKWKBKS
Author: XNIMKARP
Creation Date: 29.09.2006
ZSAO System: <&system> (blue)
ZSAO System Fct.: <&sf> (green)
DER: DER&
HLD: HLD&
Request number:
*----
Description (technical)
&
&
&
===================================================================
Modification History (recent on top / refs: MODnnn+ or MODnnn-)
-------------------------------------------------------------------
Modification Number: MODnnn
Modifier: &userid
Modification Date: &
Change object: DER, TPR, Clarify number
Request number:
Description
&
-------------------------------------------------------------------
Modification Number: MOD001
Modifier: &userid
Modification Date: &
Change object: DER, TPR, Clarify number
Request number:
Description
&
*********************************************************************
REPORT /GIL/ZZKWKBKS
MESSAGE-ID ?? "....
NO STANDARD PAGE HEADING
LINE-COUNT 65(0)
LINE-SIZE 132.
.
eject*******************************************************
Data Declaration Section *
**************************************************************
----
TABLE declarations for select-options only *
----
TABLES: /GIL/ZZKDERMAST ,
/GIL/ZZKCOMBOOK ,
/GIL/ZZKWEEKID .
----
SELECT-OPTIONS and PARAMETERS *
----
SELECT-OPTIONS:
S_STRWK FOR /GIL/ZZKWEEKID-STRWK NO INTERVALS . "....
"PARAMETERS:
" P_???? TYPE ????-????? DEFAULT ?, "description ????
" PX_??? AS CHECKBOX "description ????
----
TYPES *
----
TYPES:
begin of T_IT_OUTTAB ,
STRWK like /GIL/ZZKCOMBOOK-STRWK ,
CSTMZ like /GIL/ZZKDERMAST-CSTMZ ,
NAME_TEXT like ADRP-NAME_TEXT ,
DERNO like /GIL/ZZKCOMBOOK-DERNO ,
BNAME like /GIL/ZZKCOMBOOK-BNAME ,
HRSBK like /GIL/ZZKCOMBOOK-HRSBK ,
STATS like /GIL/ZZKDERMAST-STATS ,
CLSDT like /GIL/ZZKDERMAST-CLSDT ,
MNTHI like /GIL/ZZKWEEKID-MNTHI ,
QRTRI like /GIL/ZZKWEEKID-QRTRI ,
end of T_IT_OUTTAB .
TYPES:
begin of T_IT_WEEKSUM ,
STRWK like /GIL/ZZKCOMBOOK-STRWK ,
MNTHI like /GIL/ZZKWEEKID-MNTHI ,
QRTRI like /GIL/ZZKWEEKID-QRTRI ,
DEVHRS like /GIL/ZZKCOMBOOK-HRSBK ,
CUSHRS like /GIL/ZZKCOMBOOK-HRSBK ,
TOTHRS like /GIL/ZZKCOMBOOK-HRSBK ,
DVMHRS like /GIL/ZZKCOMBOOK-HRSBK ,
CSMHRS like /GIL/ZZKCOMBOOK-HRSBK ,
TOMHRS like /GIL/ZZKCOMBOOK-HRSBK ,
DVQHRS like /GIL/ZZKCOMBOOK-HRSBK ,
CSQHRS like /GIL/ZZKCOMBOOK-HRSBK ,
TOQHRS like /GIL/ZZKCOMBOOK-HRSBK ,
TOTDER like /GIL/ZZKCOMBOOK-HRSBK ,
TOMDER like /GIL/ZZKCOMBOOK-HRSBK ,
TOQDER like /GIL/ZZKCOMBOOK-HRSBK ,
end of T_IT_WEEKSUM .
TYPES:
begin of T_IT_DEVSUM ,
NAME_TEXT like ADRP-NAME_TEXT ,
HRSBK like /GIL/ZZKCOMBOOK-HRSBK ,
end of T_IT_DEVSUM .
"TYPES: T_FL_??? TYPE ????-?????. "description ???
"TYPES: T_IT_??? TYPE ????-?????. "description ???
----
VARIABLES *
----
"DATA: V_??? TYPE ????-?????. "field description
"DATA: VX_??? TYPE ????-?????. "flag description
DATA: VIT_DATATAB TYPE T_IT_OUTTAB occurs 0 with header line.
DATA: VIT_WEEKSUM TYPE T_IT_WEEKSUM occurs 0 with header line.
DATA: VIT_DEVSUM TYPE T_IT_DEVSUM occurs 0 with header line.
----
constants *
----
CONSTANTS: C_BR1 TYPE C VALUE '(' ,
C_BR2 TYPE C VALUE ')' ,
C_DASH TYPE C VALUE '-' ,
C_005 TYPE I VALUE '5' ,
C_006 TYPE I VALUE '6' ,
C_030 TYPE I VALUE '30' ,
C_031 TYPE I VALUE '31' ,
C_055 TYPE I VALUE '55' ,
C_056 TYPE I VALUE '56' ,
C_080 TYPE I VALUE '80' ,
C_081 TYPE I VALUE '81' ,
C_105 TYPE I VALUE '105' ,
C_106 TYPE I VALUE '106' ,
C_125 TYPE I VALUE '126' ,
C_130 TYPE I VALUE '130' ,
C_150 TYPE I VALUE '150' .
eject*******************************************************
program section (EVENTS) *
**************************************************************
----
start of database access *
----
START-OF-SELECTION.
PERFORM FETCH_BOOKING_DATA .
PERFORM FETCH_USER_DATA .
PERFORM WEEKLY_CUMULATION .
TOP-OF-PAGE.
PERFORM WRITE_HEADER .
&----
*& Form FETCH_BOOKING_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM FETCH_BOOKING_DATA .
select a~STRWK
a~DERNO
a~BNAME
a~HRSBK
b~STATS
b~CLSDT
b~CSTMZ
c~MNTHI
c~QRTRI
into corresponding fields of table VIT_DATATAB
from /GIL/ZZKCOMBOOK as a
inner join /GIL/ZZKDERMAST as b
on bBNAME = aBNAME
and bDERNO = aDERNO
inner join /GIL/ZZKWEEKID as c
on cSTRWK = aSTRWK
where a~STRWK in S_STRWK .
if SY-SUBRC <> 0 .
WRITE /10 TEXT-001.
EXIT .
endif .
ENDFORM. " FETCH_BOOKING_DATA
&----
*& Form FETCH_USER_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM FETCH_USER_DATA .
DATA:
BEGIN OF LIT_USER OCCURS 0 ,
BNAME like /GIL/ZZKCOMBOOK-BNAME ,
NAME_TEXT like ADRP-NAME_TEXT ,
END OF LIT_USER .
DATA : L_SY_TABIX LIKE SY-TABIX .
LOOP AT VIT_DATATAB .
MOVE-CORRESPONDING VIT_DATATAB TO LIT_USER .
APPEND LIT_USER .
ENDLOOP .
DELETE ADJACENT DUPLICATES FROM LIT_USER COMPARING BNAME .
if LIT_USER[] is not initial .
SELECT BBNAME ANAME_TEXT
INTO corresponding fields of table LIT_USER
FROM ADRP AS A
INNER JOIN USR21 AS B
ON BPERSNUMBER = APERSNUMBER
for all entries in LIT_USER
WHERE B~BNAME = LIT_USER-BNAME .
endif.
loop at VIT_DATATAB .
L_SY_TABIX = SY-TABIX .
read table LIT_USER with key BNAME = VIT_DATATAB-BNAME .
if sy-subrc = 0 .
VIT_DATATAB-NAME_TEXT = LIT_USER-NAME_TEXT .
modify VIT_DATATAB index L_SY_TABIX .
endif .
endloop.
ENDFORM. " FETCH_USER_DATA
&----
*& Form WEEKLY_CUMULATION
&----
text
----
--> p1 text
<-- p2 text
----
FORM WEEKLY_CUMULATION .
DATA:
L_PREV_MNTHI like /GIL/ZZKWEEKID-MNTHI ,
L_PREV_QRTRI like /GIL/ZZKWEEKID-QRTRI ,
LFL_DATATAB_WA TYPE T_IT_OUTTAB .
SORT VIT_DATATAB BY STRWK CSTMZ NAME_TEXT .
loop at VIT_DATATAB .
move-corresponding VIT_DATATAB to LFL_DATATAB_WA .
AT END OF NAME_TEXT .
SUM .
VIT_DEVSUM-NAME_TEXT = VIT_DATATAB-NAME_TEXT .
VIT_DEVSUM-HRSBK = VIT_DATATAB-HRSBK .
APPEND VIT_DEVSUM .
ENDAT .
AT END OF CSTMZ .
SUM .
if LFL_DATATAB_WA-CSTMZ IS INITIAL .
VIT_DEVSUM-NAME_TEXT = TEXT-011 .
else.
VIT_DEVSUM-NAME_TEXT = TEXT-012 .
endif.
VIT_DEVSUM-HRSBK = VIT_DATATAB-HRSBK .
APPEND VIT_DEVSUM .
ENDAT .
AT END OF STRWK .
CLEAR: VIT_WEEKSUM-DEVHRS ,
VIT_WEEKSUM-CUSHRS ,
VIT_WEEKSUM-TOTHRS .
VIT_WEEKSUM-STRWK = LFL_DATATAB_WA-STRWK .
VIT_WEEKSUM-MNTHI = LFL_DATATAB_WA-MNTHI .
VIT_WEEKSUM-QRTRI = LFL_DATATAB_WA-QRTRI .
SUM .
VIT_WEEKSUM-TOTHRS = VIT_DATATAB-HRSBK .
VIT_DEVSUM-NAME_TEXT = TEXT-013 .
VIT_DEVSUM-HRSBK = VIT_DATATAB-HRSBK .
APPEND VIT_DEVSUM .
SELECT SUM( HRSBK )
INTO VIT_WEEKSUM-CUSHRS
from /GIL/ZZKWEKBK
where STRWK = LFL_DATATAB_WA-STRWK
AND CSTMZ NE SPACE .
VIT_WEEKSUM-DEVHRS =
VIT_WEEKSUM-TOTHRS - VIT_WEEKSUM-CUSHRS .
IF LFL_DATATAB_WA-MNTHI <> L_PREV_MNTHI .
if week falls in differnet month .
L_PREV_MNTHI = LFL_DATATAB_WA-MNTHI .
CLEAR: VIT_WEEKSUM-DVMHRS ,
VIT_WEEKSUM-CSMHRS ,
VIT_WEEKSUM-TOMHRS .
SELECT SUM( HRSBK )
INTO VIT_WEEKSUM-DVMHRS
from /GIL/ZZKWEKBK
where MNTHI = LFL_DATATAB_WA-MNTHI
AND CSTMZ EQ SPACE .
SELECT SUM( HRSBK )
INTO VIT_WEEKSUM-CSMHRS
from /GIL/ZZKWEKBK
where MNTHI = LFL_DATATAB_WA-MNTHI
AND CSTMZ NE SPACE .
VIT_WEEKSUM-TOMHRS =
VIT_WEEKSUM-DVMHRS + VIT_WEEKSUM-CSMHRS .
ENDIF .
IF LFL_DATATAB_WA-QRTRI <> L_PREV_QRTRI .
L_PREV_QRTRI = LFL_DATATAB_WA-QRTRI .
SELECT SUM( HRSBK )
INTO VIT_WEEKSUM-DVQHRS
from /GIL/ZZKWEKBK
where QRTRI = LFL_DATATAB_WA-QRTRI
AND CSTMZ EQ SPACE .
SELECT SUM( HRSBK )
INTO VIT_WEEKSUM-CSQHRS
from /GIL/ZZKWEKBK
where QRTRI = LFL_DATATAB_WA-QRTRI
AND CSTMZ NE SPACE .
VIT_WEEKSUM-TOQHRS =
VIT_WEEKSUM-DVQHRS + VIT_WEEKSUM-CSQHRS .
ENDIF .
APPEND VIT_WEEKSUM .
NEW-PAGE .
PERFORM WRITE_WEEKLY_STATISTICS .
PERFORM WRITE_DEVELOPER_STATISTICS .
ENDAT .
endloop .
ENDFORM. " WEEKLY_CUMULATION
&----
*& Form WRITE_DEVELOPER_STATISTICS
&----
text
----
--> p1 text
<-- p2 text
----
FORM WRITE_DEVELOPER_STATISTICS .
SKIP 2.
WRITE AT: /C_005 TEXT-014 .
ULINE AT /C_005(C_125) .
WRITE AT:/C_005 SY-VLINE ,
C_006 TEXT-014 ,
C_080 SY-VLINE ,
C_081 TEXT-015 ,
C_130 SY-VLINE .
WRITE AT: C_005 SY-VLINE ,
C_080 SY-VLINE ,
C_130 SY-VLINE .
ULINE AT /C_005(C_125) .
loop at VIT_DEVSUM .
CASE VIT_DEVSUM-NAME_TEXT .
WHEN TEXT-011 .
WRITE AT:/C_005 SY-VLINE ,
C_006 VIT_DEVSUM-NAME_TEXT COLOR COL_NEGATIVE ,
C_080 SY-VLINE ,
C_081 VIT_DEVSUM-HRSBK COLOR COL_NEGATIVE ,
C_130 SY-VLINE .
WHEN TEXT-012 .
WRITE AT:/C_005 SY-VLINE ,
C_006 VIT_DEVSUM-NAME_TEXT COLOR COL_NEGATIVE ,
C_080 SY-VLINE ,
C_081 VIT_DEVSUM-HRSBK COLOR COL_NEGATIVE ,
C_130 SY-VLINE .
WHEN TEXT-013 .
WRITE AT:/C_005 SY-VLINE ,
C_006 VIT_DEVSUM-NAME_TEXT COLOR COL_TOTAL ,
C_080 SY-VLINE ,
C_081 VIT_DEVSUM-HRSBK COLOR COL_TOTAL ,
C_130 SY-VLINE .
WHEN OTHERS .
WRITE AT:/C_005 SY-VLINE ,
C_006 VIT_DEVSUM-NAME_TEXT ,
C_080 SY-VLINE ,
C_081 VIT_DEVSUM-HRSBK ,
C_130 SY-VLINE .
ENDCASE .
WRITE AT: C_005 SY-VLINE ,
C_080 SY-VLINE ,
C_130 SY-VLINE .
ULINE AT /C_005(C_125) .
endloop .
REFRESH VIT_DEVSUM .
CLEAR VIT_DEVSUM .
ENDFORM. " WRITE_DEVELOPER_STATISTICS
&----
*& Form WRITE_WEEKLY_STATISTICS
&----
text
----
--> p1 text
<-- p2 text
----
FORM WRITE_WEEKLY_STATISTICS .
SKIP 2.
ULINE AT C_005(C_125) .
WRITE AT: /C_005 SY-VLINE ,
C_006 TEXT-003 ,
C_030 SY-VLINE ,
C_031 TEXT-004 ,
C_055 SY-VLINE ,
C_056 TEXT-005 ,
C_080 SY-VLINE ,
C_081 TEXT-006 ,
C_105 SY-VLINE ,
C_106 TEXT-007 ,
C_130 SY-VLINE .
WRITE AT: /C_005 SY-VLINE ,
C_030 SY-VLINE ,
C_031 /GIL/ZZKWEEKID-STRWK ,
41 C_DASH ,
43 /GIL/ZZKWEEKID-ENDWK ,
C_055 SY-VLINE ,
C_056 VIT_WEEKSUM-MNTHI ,
C_080 SY-VLINE ,
C_081 VIT_WEEKSUM-QRTRI ,
C_105 SY-VLINE ,
C_130 SY-VLINE .
WRITE AT: /C_005 SY-VLINE ,
C_030 SY-VLINE ,
C_055 SY-VLINE ,
C_080 SY-VLINE ,
C_105 SY-VLINE ,
C_130 SY-VLINE .
ULINE AT C_005(C_125) .
WRITE AT: /C_005 SY-VLINE ,
C_006 TEXT-008 ,
C_030 SY-VLINE ,
C_031 VIT_WEEKSUM-DEVHRS ,
C_055 SY-VLINE ,
C_056 VIT_WEEKSUM-DVMHRS ,
C_080 SY-VLINE ,
C_081 VIT_WEEKSUM-DVQHRS ,
C_105 SY-VLINE ,
C_130 SY-VLINE .
WRITE AT: /C_005 SY-VLINE ,
C_030 SY-VLINE ,
C_055 SY-VLINE ,
C_080 SY-VLINE ,
C_105 SY-VLINE ,
C_130 SY-VLINE .
ULINE AT C_005(C_125) .
WRITE AT: /C_005 SY-VLINE ,
C_006 TEXT-009 ,
C_030 SY-VLINE ,
C_031 VIT_WEEKSUM-CUSHRS ,
C_055 SY-VLINE ,
C_056 VIT_WEEKSUM-CSMHRS ,
C_080 SY-VLINE ,
C_081 VIT_WEEKSUM-CSQHRS ,
C_105 SY-VLINE ,
C_130 SY-VLINE .
WRITE AT: /C_005 SY-VLINE ,
C_030 SY-VLINE ,
C_055 SY-VLINE ,
C_080 SY-VLINE ,
C_105 SY-VLINE ,
C_130 SY-VLINE .
ULINE AT C_005(C_125) .
WRITE AT: /C_005 SY-VLINE COLOR COL_TOTAL,
C_006 TEXT-010 COLOR COL_TOTAL,
C_030 SY-VLINE COLOR COL_TOTAL ,
C_031 VIT_WEEKSUM-TOTHRS COLOR COL_TOTAL,
C_055 SY-VLINE COLOR COL_TOTAL,
C_056 VIT_WEEKSUM-TOMHRS COLOR COL_TOTAL,
C_080 SY-VLINE COLOR COL_TOTAL,
C_081 VIT_WEEKSUM-TOQHRS COLOR COL_TOTAL,
C_105 SY-VLINE COLOR COL_TOTAL,
C_130 SY-VLINE COLOR COL_TOTAL.
WRITE AT: /C_005 SY-VLINE ,
C_030 SY-VLINE ,
C_055 SY-VLINE ,
C_080 SY-VLINE ,
C_105 SY-VLINE ,
C_130 SY-VLINE .
ULINE AT C_005(C_125) .
ENDFORM. " WRITE_WEEKLY_STATISTICS
&----
*& Form WRITE_HEADER
&----
text
----
--> p1 text
<-- p2 text
----
FORM WRITE_HEADER .
SKiP 1 .
SELECT SINGLE *
FROM /GIL/ZZKWEEKID
WHERE STRWK = VIT_WEEKSUM-STRWK .
WRITE AT: 5 TEXT-002 INTENSIFIED ON .
WRITE AT: 47 /GIL/ZZKWEEKID-MNTHI ,
55 /GIL/ZZKWEEKID-WEEKI ,
65 C_BR1 ,
67 /GIL/ZZKWEEKID-STRWK ,
78 C_DASH ,
80 /GIL/ZZKWEEKID-ENDWK ,
91 C_BR2
INTENSIFIED ON .
ENDFORM. " WRITE_HEADER
11-23-2006 12:06 PM
Hi Siva and Krish,
Your input will be monday of every week rt?
So first you have to find out the date range of that particular week ,means the first and last day of that particular week.
For this you can make use of function module
HR_GBSSP_GET_WEEK_DATES
It will results begin_date and end_date
Now using these date range you can make a selection from your table like
SELECT COUNT( * ) FROM <table>
INTO <no_of_dates>
WHERE from LE <begin_date>
AND to GE <end_date>.
I think this will work for you .
I cant able to excecute your program coz your Z tables are not available here
Thanks and regards
Antony
*Give rewards if find usefull**