Code: Alles auswählen.
DATUM_ALT = P0002-GBPAS. "Geburtsdatum
DATUM_NEU = SY-DATUM. "heutiges Datum
IF DATUM_NEU+4(4) LT DATUM_ALT+4(4).
DATUM_NEU(4) = DATUM_NEU(4) - 1.
TRANSLATE DATUM_NEU USING ' 0'.
ENDIF.
ALTER = DATUM_NEU(4) - DATUM_ALT(4).
Code: Alles auswählen.
LOOP AT TAB.
IF TAB-ALTER IS NOT INITIAL.
ANZAHL = ANZAHL + 1.
ALTERGES = ALTERGES + TAB-ALTER.
ENDIF.
ENDLOOP.
DURCHSA = ALTERGES / ANZAHL.
Unter Durchschnit versteht man i.A. das arithmetische Mittel.ralf.wenzel hat geschrieben:Naja, da müsste man vorher schon wissen, welchen "Durchschnitt" er haben will. Arithmetisches Mittel? Geometrisches Mittel? Median? Modus?
erst mal vielen Dank für eure Hilfe bisher. Die Idee von ratsnus gefällt mir ganz gut. Darunter kann ich mir etwas vorstellen. Nur wie sieht das das mit dem Coding aus, kann man einfach den Report ausgeben lassen?ratsnus hat geschrieben:man könnte sich auch eine Liste ausgeben lassen in der TA: S_AHR_61016362 da wäre das Alter in Jahren des Mitarbeiters verfügbar.
Code: Alles auswählen.
tables: pa0001.
data: begin of itab occurs 0,
pernr like pa0001-pernr,
age like T71GS-LOVAL,
end of itab.
data: rows TYPE i,
summe like T71GS-LOVAL,
mittel type T71GS-LOVAL.
select-options: per_num for pa0001-pernr.
select distinct pernr from pa0001 into itab-pernr
where pernr in per_num.
CALL FUNCTION 'HR_AUPBS_AGE'
EXPORTING
PERNR = itab-pernr
BSDTE = sy-datum
* REACTION = ' '
IMPORTING
VALUE = itab-age
EXCEPTIONS
RECORD_NOT_FOUND = 1
OTHERS = 2
.
append itab.
endselect.
rows = lines( itab ).
loop at itab.
write:/ itab-pernr,
itab-age.
at last.
sum.
move itab-age to summe.
endat.
endloop.
mittel = summe / rows.
write:/ 'Für ', rows, 'selektierte Mitarbeiter beträgt das Durchschnittsalter: ', mittel, ' Jahre'.