Felder mehrerer Tabellen zählen

Getting started ... Alles für einen gelungenen Start.

Felder mehrerer Tabellen zählen

Postby Lionel2429 » Thu Apr 13, 2017 8:39 am

Hallo alle zusammen,

ich bin noch ein Anfänger und habe die folgende Aufgabe in ABAP bekommen:

Ich habe 7 Datenbanktabellen und aus den Tabellen sollen nur bestimmte Felder in Betracht gezogen werden (in meinem Beispiel, Felder die mit ZZ anfangen). Jedes der ZZ-Felder haben bestimmte Anzahl an Einträge. Das Programm soll aus den 7 Datenbanktabellen alle Einträge der ZZ-Felder zählen und ausgeben.

Beispiel (für eine Tabelle):
Die Tabelle ZZ_MEINE_TABELLE hat 872 Einträge
Bei diesen 872 Zeilen ist das Feld ZZ_MEIN_FELD in 12 Fällen leer, und 860 mal steht ein Wert drin.
Dann soll mir das Programm ausgeben: Tabelle ZZ_MEINE_TABELLE, Feld ZZ_MEIN_FELD hat 860 Einträge. Danke im Voraus.

Gruß
Kai
Lionel2429
.
.
 
Posts: 4
Joined: Wed Apr 12, 2017 7:54 pm

Re: Felder mehrerer Tabellen zählen

Postby Lionel2429 » Thu Apr 13, 2017 12:17 pm

Kann mir keiner helfen?
Lionel2429
.
.
 
Posts: 4
Joined: Wed Apr 12, 2017 7:54 pm

Re: Felder mehrerer Tabellen zählen

Postby Lionel2429 » Thu Apr 13, 2017 12:47 pm

Kann mir keiner helfen?
Lionel2429
.
.
 
Posts: 4
Joined: Wed Apr 12, 2017 7:54 pm

Re: Felder mehrerer Tabellen zählen

Postby Nick1154 » Fri Apr 28, 2017 12:46 pm

Hi,

data: n type i.

select count(*) into n from ZZ_MEINE_TABELLE where ZZ_MEIN_FELD <> ''.

write: / n.

VG

Diko
Nick1154
...
...
 
Posts: 160
Joined: Mon Jan 17, 2005 2:48 pm

Re: Felder mehrerer Tabellen zählen

Postby Jane5204 » Mon Jun 12, 2017 2:51 pm

Hallo,

veruche es mal so, geht vielleicht noch "hipper" aber erfüllt seinen Zweck:

PARAMETERS p_tab TYPE dd02l-tabname.

DATA: BEGIN OF ls_data,
name TYPE fieldname,
zaehl TYPE i,
END OF ls_data,

lt_data LIKE TABLE OF ls_data WITH KEY name,
lr_ref_itab TYPE REF TO data,
lr_struc TYPE REF TO cl_abap_structdescr,
ls_comp TYPE abap_compdescr.

FIELD-SYMBOLS: <ft_tab> TYPE ANY TABLE,
<fs_value> TYPE any,
<fs_tab> TYPE any.
*--------------------------------------------------------

START-OF-SELECTION.

CREATE DATA lr_ref_itab TYPE STANDARD TABLE OF (p_tab).
ASSIGN lr_ref_itab->* TO <ft_tab>.
SELECT * FROM (p_tab) INTO TABLE <ft_tab>.


lr_struc ?= cl_abap_typedescr=>describe_by_name( p_tab ).

LOOP AT <ft_tab> ASSIGNING <fs_tab>.
LOOP AT lr_struc->components INTO ls_comp.

IF ls_comp-name(2) = 'ZZ'.
ASSIGN COMPONENT ls_comp-name OF STRUCTURE <fs_tab> TO <fs_value>.
IF <fs_value> IS NOT INITIAL.
ls_data-name = ls_comp-name.
ls_data-zaehl = 1.
COLLECT ls_data INTO lt_data.
ENDIF.
ENDIF.

ENDLOOP.
ENDLOOP.

LOOP AT lt_data INTO ls_data.

WRITE: /2 ls_data-name,
30 ls_data-zaehl.
ENDLOOP.

VG
Jane5204
.
.
 
Posts: 8
Joined: Mon Jun 12, 2017 2:51 pm

Re: Felder mehrerer Tabellen zählen

Postby Jane5204 » Mon Jun 12, 2017 2:53 pm

Hallo,

versuche es mal so, es geht wahrscheinlich noch "hipper" aber es erfüllt seinen Zweck auf die schnelle:

PARAMETERS p_tab TYPE dd02l-tabname.

DATA: BEGIN OF ls_data,
name TYPE fieldname,
zaehl TYPE i,
END OF ls_data,

lt_data LIKE TABLE OF ls_data WITH KEY name,
lr_ref_itab TYPE REF TO data,
lr_struc TYPE REF TO cl_abap_structdescr,
ls_comp TYPE abap_compdescr.

FIELD-SYMBOLS: <ft_tab> TYPE ANY TABLE,
<fs_value> TYPE any,
<fs_tab> TYPE any.
*--------------------------------------------------------

START-OF-SELECTION.

CREATE DATA lr_ref_itab TYPE STANDARD TABLE OF (p_tab).
ASSIGN lr_ref_itab->* TO <ft_tab>.
SELECT * FROM (p_tab) INTO TABLE <ft_tab>.


lr_struc ?= cl_abap_typedescr=>describe_by_name( p_tab ).

LOOP AT <ft_tab> ASSIGNING <fs_tab>.
LOOP AT lr_struc->components INTO ls_comp.

IF ls_comp-name(2) = 'ZZ'.
ASSIGN COMPONENT ls_comp-name OF STRUCTURE <fs_tab> TO <fs_value>.
IF <fs_value> IS NOT INITIAL.
ls_data-name = ls_comp-name.
ls_data-zaehl = 1.
COLLECT ls_data INTO lt_data.
ENDIF.
ENDIF.

ENDLOOP.
ENDLOOP.

LOOP AT lt_data INTO ls_data.

WRITE: /2 ls_data-name,
30 ls_data-zaehl.
ENDLOOP.
Jane5204
.
.
 
Posts: 8
Joined: Mon Jun 12, 2017 2:51 pm

Re: Felder mehrerer Tabellen zählen

Postby Jane5204 » Tue Jun 13, 2017 9:58 am

Ich hatte gestern darauf geantwortet, wo ist der Beitrag hin ??
Jane5204
.
.
 
Posts: 8
Joined: Mon Jun 12, 2017 2:51 pm

Re: Felder mehrerer Tabellen zählen

Postby Jane5204 » Fri Jun 16, 2017 6:51 am

Hallo,

versuche es mal so:

PARAMETERS p_tab TYPE dd02l-tabname.

DATA: BEGIN OF ls_data,
name TYPE fieldname,
zaehl TYPE i,
END OF ls_data,

lt_data LIKE TABLE OF ls_data WITH KEY name,
lr_ref_itab TYPE REF TO data,
lr_struc TYPE REF TO cl_abap_structdescr,
ls_comp TYPE abap_compdescr.

FIELD-SYMBOLS: <ft_tab> TYPE ANY TABLE,
<fs_value> TYPE any,
<fs_tab> TYPE any.
*--------------------------------------------------------

START-OF-SELECTION.



CREATE DATA lr_ref_itab TYPE STANDARD TABLE OF (p_tab).
ASSIGN lr_ref_itab->* TO <ft_tab>.
SELECT * FROM (p_tab) INTO TABLE <ft_tab>.


lr_struc ?= cl_abap_typedescr=>describe_by_name( p_tab ).

LOOP AT <ft_tab> ASSIGNING <fs_tab>.
LOOP AT lr_struc->components INTO ls_comp.

IF ls_comp-name(2) = 'ZZ'.
ASSIGN COMPONENT ls_comp-name OF STRUCTURE <fs_tab> TO <fs_value>.
IF <fs_value> IS NOT INITIAL.
ls_data-name = ls_comp-name.
ls_data-zaehl = 1.
COLLECT ls_data INTO lt_data.
ENDIF.
ENDIF.

ENDLOOP.
ENDLOOP.

LOOP AT lt_data INTO ls_data.

WRITE: /2 ls_data-name,
30 ls_data-zaehl.
ENDLOOP.

VG
Jane5204
.
.
 
Posts: 8
Joined: Mon Jun 12, 2017 2:51 pm


Return to ABAP® für Anfänger

Who is online

Users browsing this forum: No registered users and 2 guests

cron