Ausserhalb einer Schleife die Anzahl ermitteln?

Getting started ... Alles für einen gelungenen Start.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Ausserhalb einer Schleife die Anzahl ermitteln?

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo liebe User,

ich brauche eine anzahl von Einträgen, die ich an aktiven Aufträgen aus der jkap bekomme.

Code: Alles auswählen.

 CLEAR it_tab.                                               
 SELECT vbeln poart drerz posnr FROM jkap INTO               
        CORRESPONDING FIELDS OF TABLE it_tab                 
    WHERE drerz IN s_drerz                                   
    AND poart IN ('PP','NP')                                 
    AND gueltigbis GE p_sttag.                               

wie kann ich mir da die Anzahl ausgeben lassen? mit sy-tabix geht es nicht.

liebe grüße
coco

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
ich habe es jetzt mit sy-dbcnt gemacht.

klappt zwar aber ich brauche die Anzahl der Aufträge pro Kunden.

Re: Ausserhalb einer Schleife die Anzahl ermitteln?

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »

Code: Alles auswählen.

 CLEAR it_tab.                                               
 SELECT COUNT( * ) kunnr vbeln poart drerz posnr FROM jkap INTO               
        CORRESPONDING FIELDS OF TABLE it_tab                 
    WHERE drerz IN s_drerz                                   
    AND poart IN ('PP','NP')                                 
    AND gueltigbis GE p_sttag
   GROUP BY kunnr.                               

Aus der Hilfe zu COUNT(*)
COUNT( * ) (oder count(*)) bestimmt die Anzahl der Zeilen der Ergebnismenge bzw. der aktuellen Gruppe. In diesem Fall wird kein Spaltenbezeichner angegeben.
Die Hilfe zu Group bitte selber lesen.

Da wir die Tabelle jkap nicht im System haben, weiß ich nicht ob es die KUNNR auch gibt. Wollte dir nur Count/Group By zeigen.
Gruß Hendrik

Beitrag von brinam (Specialist / 111 / 0 / 0 ) »
Hallo coco,

ich kenne die Tabelle jkap auch nicht, und weiss nicht, ob es um die Anzahl Aufträge gesamt oder je Kunde geht.
Wenn Du aber nur die Anzahl der Einträge der it_tab benötigst, so geht das recht einfach.
DATA: g_anz TYPE i.
DESCRIBE TABLE it_tab LINES g_anz.
oder:
DESCRIBE TABLE it_tab. -> Die Anzahl steht dann in sy-tfill.

lines

Beitrag von Bernhard_C (ForumUser / 26 / 0 / 0 ) »
Hallo coco,

und seit 4.6 gibt es die Funktion lines:
g_anz = lines( it_tab ).

Gruß
Bernhard

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Erstmal vielen Dank für die Ratschläge.

@birniam:
Die Tabelle jkpa ist eine Datenbanktabelle mit Kundenauftragsdaten. Da gibt es das Feld Geschäftspartnernummer. Und ich soll alle Aufträge je Geschäftspartner ermitteln, d.h. am Ende soll ausgegeben werden: GPNR xy hat insgesamt 15 Aufträge. GPNR ab hat insgesamt 9 Aufträge usw.

@ Bernhard: Da wir mit der Version 4.0 arbeiten habe ich leider nicht die Möglichkeit lines zu verwenden.

Also ich habe es so probiert:

Code: Alles auswählen.

 
LOOP AT it_tab INTO wa_tab.                                      
   CLEAR wa_tabzwei.                                              
   SELECT * FROM jkpa INTO CORRESPONDING FIELDS OF wa_tabzwei     
     WHERE gpnr = wa_tab-gpnr                                     
     AND   jparvw = 'RE'                                          
     AND   posnr = '000001'.                                      
     APPEND wa_tabzwei TO it_tabzwei.                             
   ENDSELECT.                                                     
 ENDLOOP.           
Hier hole ich mir zuerst einmal alle Geschäftspartner, die jparvw = Rechnungsempfänger sind und die Positionsnummer ...1 haben.                                          
                                                                  
 SORT it_tabzwei BY gpnr.                                         
 LOOP AT it_tabzwei INTO wa_tabzwei.                              
   wa_tabzweibuf = wa_tabzwei.                                    
   AT END OF gpnr.                                                
     wa_tabzweibuf-anz_ges = anz_ges.                             
     MODIFY it_tabzwei FROM wa_tabzweibuf.                        
   ENDAT.                                                         
   anz_ges = anz_ges + 1.                                         
 ENDLOOP.                      

hier loope ich über meine interne Tabelle und sortiere die GPNR. aber das Problem ist, er gibt mir die Anzahl der Schleifenduchläufe aus. Ist zwar verständlich aber wie soll ich es denn sonst lösen?                                  
                                                                  

Vorschlag:Clear-Statement auf anz_ges

Beitrag von jwabapforum (ForumUser / 4 / 0 / 0 ) »
Hallo,

probiere mal ein Clear-Statement an folgender Stelle:

SORT it_tabzwei BY gpnr.
LOOP AT it_tabzwei INTO wa_tabzwei.
wa_tabzweibuf = wa_tabzwei.
AT END OF gpnr.
wa_tabzweibuf-anz_ges = anz_ges.
MODIFY it_tabzwei FROM wa_tabzweibuf.
==> clear anz_ges.
ENDAT.
anz_ges = anz_ges + 1.
ENDLOOP.

Gruss juri

Seite 1 von 1

Vergleichbare Themen

3
Antw.
3862
Views
FI-TV: Reisekosten - Anzahl der Abzüge ermitteln ?
von Matthias_L. » 07.12.2006 12:58 • Verfasst in Financials
2
Antw.
28628
Views
Anzahl der im String enthaltener Zeichen ermitteln
von wexpress » 13.01.2005 15:50 • Verfasst in ABAP® Core
8
Antw.
8274
Views
generische Objektdienste (BOR) - Ermitteln Anzahl Anlagen
von Kaiwalker » 25.02.2008 09:15 • Verfasst in ABAP Objects®
4
Antw.
5412
Views
Anzahl Felder einer Struktur ermitteln
von Barney » 05.12.2013 08:00 • Verfasst in ABAP® für Anfänger
2
Antw.
4419
Views
Anzahl DB-Elemente in Funktionsbaustein Ermitteln(gelöst)
von beterman » 15.11.2011 19:07 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 7 Stunden von black_adept gelöst 23 / 3593
User Exit EXIT_RQCPRM10_001
vor 7 Stunden von a-dead-trousers 2 / 208
Trennen Strasse und Hausnummer
vor 13 Stunden von payten 13 / 10546
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1259

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 7 Stunden von black_adept gelöst 23 / 3593
User Exit EXIT_RQCPRM10_001
vor 7 Stunden von a-dead-trousers 2 / 208
Trennen Strasse und Hausnummer
vor 13 Stunden von payten 13 / 10546
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1259

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2810
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9390