Beträge addieren

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Beträge addieren

Beitrag von Gast ( / / 0 / 3 ) »
Ich habe ein Problem:

Gegeben ist eine Interne Tabelle in welcher die Kostenstelle, eine Belegnummer, der Username und ein Betrag vorhande ist. itab_user_daten

z.B.

1500 2121440 zx1922 1.000
1500 5234345 zx1922 5.200
2100 2324545 zx1922 1.200
2100 2343114 zx1922 2.200
1500 2121440 zx1933 1.880
1500 5234345 zx1933 1.100


...


wie komme ich dahin, diese Daten in eine weitere interne Tabelle zu schreiben, die dann wie folgt aussehen soll: itab_user_ges

zx1922 9.600
zx1933 2.980

also alle Beträge der einzelnen User addieren und in einer Zeile ausgeben.

muss ich zwei loops auf die interne Tabelle itab_user_daten machen? Bin ein wenig ratlos!


Danke für Eure Hilfe


Stephan

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


Beitrag von Gast ( / / 0 / 3 ) »
Meiner Ansicht nach müßte ein Loop über itab_user_daten reichen mit einem move in die wa der Tabelle itab_user_ges. Die einzelnen Sätze dann einfügen mit collect.

Beitrag von Hermann ( / / 0 / 3 ) »
Die zweite Tabelle muß dann mit non-unique key definiert werden (was in dem Falle der username ist), damit es mit dem Collect-Befehl funktioniert.

z.B.:

Code: Alles auswählen.

data: z_itab_ges type standard table of <itabtype> with non-unique key username.
Hermann

Beitrag von Gast ( / / 0 / 3 ) »
Hermann hat geschrieben:Die zweite Tabelle muß dann mit non-unique key definiert werden (was in dem Falle der username ist), damit es mit dem Collect-Befehl funktioniert.

z.B.:

Code: Alles auswählen.

data: z_itab_ges type standard table of <itabtype> with non-unique key username.
Hermann
Nein, wieso?
UNIQUE ist doch OK (ein Eintrag pro User ist gewollt).
Und CHAR-Felder als Key zu behandeln (im Gegensazu zu TYPE P ...) ist doch Default.

Beitrag von Hermann ( / / 0 / 3 ) »
unique wäre ok, funktioniert aber nicht mit Tabellen vom Typ standard. In dem Fall müßte man eine hashed oder eine sorted verwenden. Das funktioniert natürlich auch, sofern man das möchte. Kommt darauf an, wie man die Tabelle später weiterverwenden möchte.

Hermann

Beitrag von Gast ( / / 0 / 3 ) »
wie würde der code dann aussehen?

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Hermann hat geschrieben:unique wäre ok, funktioniert aber nicht mit Tabellen vom Typ standard. In dem Fall müßte man eine hashed oder eine sorted verwenden. Das funktioniert natürlich auch, sofern man das möchte. Kommt darauf an, wie man die Tabelle später weiterverwenden möchte.
Hermann
COLLECT funktioniert auch prima auf STANDARD TABLEs.
Alle Zahlen werden aufsummiert, Nicht-Zahlenfelder bilden automatisch den Schlüssel.
Wenn die itab NUR mit COLLECT gefüllt wird und nicht zwischendurch mit INSERT, APPEND (oder MODIFY auf "Key"-Felder) oder SORT verändert wird, ist das seit einiger Zeit sogar ziemlich effizient.
Wenn man mit dem COLLECT fertig ist, kann man anschließend auch sortieren.
Dann wird halt die temporär von System erzeugte Hash-Verwaltung entsorgt.
Sollte fast alles in der Doku zu COLLECT beschrieben sein.
(Nur nicht, ob nach einem SORT ... ein CLEAR bzw. REFRESH reicht, oder ob ein FREE nötig ist, damit bei einem darauffolgenden COLLECT wieder mit Hash gearbeitet wird.)

Beitrag von Hermann ( / / 0 / 3 ) »
Frank Dittrich hat geschrieben: COLLECT funktioniert auch prima auf STANDARD TABLEs.
Stimmt, aber wenn Du einen Schlüssel definieren willst, funktioniert in Zusammenhang mit STANDARD TABLEs kein unique key. Zwingenderweise mußt Du immer einen non-unique key verwenden. Unique kann nur bei SORTED oder HASHED verwendet werden.
Frank Dittrich hat geschrieben: (Nur nicht, ob nach einem SORT ... ein CLEAR bzw. REFRESH reicht, oder ob ein FREE nötig ist, damit bei einem darauffolgenden COLLECT wieder mit Hash gearbeitet wird.)
Gute Hinweise :-)

Hermann

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2292
Views
CHAR6 addieren
von gs3rr4 » 07.05.2015 12:45 • Verfasst in ABAP® für Anfänger
2
Antw.
1707
Views
Welcher Typ für Beträge?
von mip » 21.07.2008 15:19 • Verfasst in ABAP® für Anfänger
4
Antw.
291
Views
Beträge summieren
von ZF_SAPler » 10.01.2023 14:23 • Verfasst in ABAP® für Anfänger
4
Antw.
7574
Views
Addieren von Variablen in SapScript
von Andreas G » 03.04.2006 14:10 • Verfasst in ABAP® Core
2
Antw.
5136
Views
SELECT mit spalten addieren und GROUP BY
von mawi » 29.05.2007 15:53 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von ewx 17 / 1041
Dialog-Container mit Toolbar/Status
vor 6 Stunden von DeathAndPain gelöst 20 / 2500
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1639

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

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von ewx 17 / 1041
Dialog-Container mit Toolbar/Status
vor 6 Stunden von DeathAndPain gelöst 20 / 2500
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1639

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 703
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2333
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8915